<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Library on Shaaf's blog</title><link>https://shaaf.dev/tags/library/</link><description>Recent content in Library on Shaaf's blog</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 25 Aug 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://shaaf.dev/tags/library/index.xml" rel="self" type="application/rss+xml"/><item><title>Think in Graphs, Not Just Chains: JGraphlet for TaskPipelines</title><link>https://shaaf.dev/post/2025-08-25-think-in-graphs-not-just-chains-jgraphlet-for-taskpipelines/</link><pubDate>Mon, 25 Aug 2025 00:00:00 +0000</pubDate><guid>https://shaaf.dev/post/2025-08-25-think-in-graphs-not-just-chains-jgraphlet-for-taskpipelines/</guid><description>&lt;p>&lt;strong>JGraphlet&lt;/strong> is a tiny, zero-dependency library for building task pipelines in Java. Its power comes not from a long list of features, but from a small set of core design principles that work together in harmony.&lt;/p>
&lt;p>At the heart of JGraphlet is simplicity, backed by a &lt;strong>Graph&lt;/strong>, Add Tasks to a pipeline and connect them to create your graph.
Each &lt;code>Task&lt;/code> has an input and ouput, A &lt;code>TaskPipeline&lt;/code> builds and executes a pipeline while managing the I/O for each &lt;code>Task&lt;/code>. For example a &lt;code>Map&lt;/code> for Fan-in, a &lt;code>Record&lt;/code> for your own data model etc. A Taskpipeline also has a &lt;code>PipelineContext&lt;/code> to share the data between Tasks, and furthermore Tasks can also be cached, so the computation doenst need to take place again and again.
You can choose how your Task pipeline flow should be, and you can choose whether it should be a &lt;code>SyncTask&lt;/code> or Async. By default all Tasks are Async.&lt;/p></description></item></channel></rss>