Plumbing is a general-purpose Clojure utility belt and data transformation library endorsed for its pragmatic approach to everyday tasks. It offers a toolkit of macros and functions that simplify common data manipulation patterns, and includes a “Graph” abstraction for structured computation flows. Most of it is also compatible with ClojureScript. Graph is a simple and declarative way to specify a structured computation, which is easy to analyze, change, compose, and monitor. Here's a simple example of an ordinary function definition, and its Graph equivalent. A Graph encodes the structure of a computation, but not how it happens, allowing for many execution strategies. For example, we can compile a Graph lazily so that step values are computed as needed. Or, we can parallel-compile the Graph so that independent step functions are run in separate threads.

Features

  • fnk and defnk macros for keyword-based function definitions with schema metadata
  • A rich set of map utilities: dissoc-in, distinct-by, assoc-when, update-in-when, and more
  • Graph abstraction to declare and execute workflows as composable computational graphs
  • Async versions of graph execution via graph-async namespace
  • Core utility functions such as safe-get, lazy-get, grouped-map, swap-pair! for everyday tasks
  • Compatibility with ClojureScript for most of the library functions

Project Samples

Project Activity

See All Activity >

Categories

Libraries

License

MIT License

Follow Plumbing

Plumbing Web Site

Other Useful Business Software
Train ML Models With SQL You Already Know Icon
Train ML Models With SQL You Already Know

BigQuery automates data prep, analysis, and predictions with built-in AI assistance.

Build and deploy ML models using familiar SQL. Automate data prep with built-in Gemini. Query 1 TB and store 10 GB free monthly.
Try Free
Rate This Project
Login To Rate This Project

User Reviews

Be the first to post a review of Plumbing!

Additional Project Details

Registered

2025-08-20