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
99.99% Uptime for MySQL and PostgreSQL Databases Icon
99.99% Uptime for MySQL and PostgreSQL Databases

Sub-second maintenance. 2x read/write performance. Built-in vector search for AI apps.

Cloud SQL Enterprise Plus delivers near-zero downtime with 35 days of point-in-time recovery. Supports MySQL, PostgreSQL, and SQL Server.
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