Skip to main content

Clojure libraries

Web

  • kit - Lightweight, modular framework for scalable web development in Clojure. (Web) (Intro)
  • Rum - Simple, decomplected, isomorphic HTML UI library for Clojure and ClojureScript.
  • Luminus - Clojure micro-framework based on a set of lightweight libraries. (HN)
  • bootleg - Simple template processing command line tool to help build static websites.
  • Biff - Web framework + self-hosted deployment solution for Clojure. (Migrating to Biff, a self-hosted Firebase alternative for Clojure) (Web) (HN)
  • cljs-ajax - Simple asynchronous Ajax client for ClojureScript and Clojure.
  • Ring - Clojure HTTP server abstraction.
  • clj-http - Idiomatic clojure http client wrapping the apache client.
  • Gniazdo - WebSocket client for Clojure.
  • Oz - Data visualizations in Clojure and ClojureScript using Vega and Vega-lite.
  • Muuntaja - Clojure library for fast HTTP format negotiation, encoding and decoding
  • reitit - Fast data-driven router for Clojure/Script.
  • ctmx - App development tool for fast product development and even faster page load times. It uses htmx on the frontend. (Web)
  • Ruuter - Tiny, zero-dependency HTTP router.
  • Garden - Generate CSS with Clojure.
  • Compojure-API - Sweet web APIs with Compojure & Swagger.
  • Pedestal - Set of libraries written in Clojure that aims to bring both the language and its principles (Simplicity, Power and Focus) to server-side development.
  • Fulcro - Library for development of single-page full-stack web applications in clj/cljs. (Workshop)
  • Ripley - Fast server-side rendered web UI toolkit with live components.
  • Polylith - Tool used to develop Polylith based architectures in Clojure.
  • navi - Tiny library converting OpenAPI route definitions to Reitit routes.
  • Nasus HTTP Server - Simple zero-configuration command-line HTTP files server.
  • Girouette - Grammar-based, generative approach to CSS.
  • zakon - Declarative Clojure authorization.
  • Hiccup - Fast library for rendering HTML in Clojure.
  • Sablono - Lisp/Hiccup style templating for Facebook’s React in ClojureScript.
  • re-stated - Small and powerful toolset that brings state machines to re-frame.
  • Coast - Fullest full stack Clojure web framework. (Web) (HN)
  • hato - HTTP client for Clojure, wrapping JDK 11's HttpClient.
  • Etaoin - Pure Clojure Webdriver protocol implementation.
  • Integrant - Clojure (and ClojureScript) micro-framework for building applications with data-driven architecture.
  • http-server - Serve static assets.
  • shadow-css - CSS-in-Clojure(Script).

DB

  • Toucan - High-level Clojure library for defining application models and retrieving them from a DB.
  • Asami - An in memory graph store for Clojure and ClojureScript. (Talk)
  • Yesql - Clojure library for using SQL.
  • suricatta - High level sql toolkit for clojure.
  • Walkable - SQL library for building APIs.
  • Gungnir - High level, data driven database library for Clojure data mapping.
  • Honey SQL - Turn Clojure data structures into SQL.
  • honeysql-postgres - PostgreSQL extension for honeysql.
  • dbee - Convenient API for executing HoneySQL queries.
  • HugSQL - Clojure library for embracing SQL. (Docs)
  • Pathom - Clojure(script) engine for processing EQL requests.
  • porsas - Experimental stuff for going fast with Clojure + JDBC & Async SQL.
  • EQL - Declarative way to make hierarchical (and possibly nested) selections of information about data requirements.
  • pyramid - Library for storing and querying graph data in a Clojure map.
  • Carmine - Pure-Clojure Redis client & message queue.
  • clj-leveldb - Clojure bindings for LevelDB.
  • SQLingvo - Clojure & ClojureScript DSL for SQL.
  • MoneySQL - Experimental drop-in replacement for HoneySQL.
  • conman - Helper library for managing database connections.
  • Codax - Idiomatic transactional embedded database for clojure.
  • asami - Graph database, for Clojure and ClojureScript.
  • flint - Clojure(Script) DSL for creating SPARQL query and update strings.
  • yoltq - Opinionated Datomic queue for building (more) reliable systems. Supports retries, backoff, ordering and more.

ML

  • deep-diamond - Fast Clojure Tensor & Deep Learning library.
  • DataLinguist - Stanford CoreNLP in idiomatic Clojure.
  • tech.ml.dataset - Clojure high performance data processing system.
  • GoodGuesser - Approximate a single numerical value using arbitrary input data, given human-labeled examples.
  • Bayadera - High-performance Bayesian Data Analysis on the GPU in Clojure.
  • Neanderthal - Fast Clojure Matrix Library.

GraphQL

  • Lacinia - GraphQL implementation in pure Clojure.
  • Plusinia - Solution to N+1 problem in Lacinia.
  • hicgql - GraphQL in Clojure data structures, Hiccup style.
  • Phrag - GraphQL API from an RDBMS Connection.

CLI

  • babashka.cli - Easy command line processing for Clojure.
  • bbb - Low friction, quick and easy way to develop CLI tools in Clojure that you can distribute as self-contained static binaries.
  • malli-cli - Command-line processing.

Test

  • Mockery - Clojure mocking library.
  • humane-test-output - Humane test output for clojure.test.
  • spec-tools - Clojure(Script) tools for clojure.spec.
  • test-runner - Small library for discovering and running tests in projects using native Clojure deps.
  • test.check - QuickCheck for Clojure.
  • spec-coerce - Clojure(script) library designed to leverage your specs to coerce your information into correct types.
  • coax - Clojure.spec coercion library for clj(s).
  • clojure.test - Clojure.test-compatible version of the classic Expectations testing library.
  • RCF - REPL-first, async test macro for Clojure/Script.
  • stateful-check - Stateful generative testing in Clojure.
  • facai - Factories for fun and profit.

Graphics

Error

  • flow - Functional (and opinionated) errors handling in Clojure.

Other

  • nippy - High-performance serialization library for Clojure.
  • clj-fast - Unpredictably faster Clojure.
  • Seqexp - Regular expressions for sequences (and other sequables).
  • Skyscraper - Framework that helps you build structured dumps of whole websites.
  • libpython-clj - JNA libpython bindings to the tech ecosystem.
  • Cljfx - Declarative, functional and extensible wrapper of JavaFX inspired by better parts of react and re-frame.
  • Hickory - HTML as data.
  • Specter - Elegant API to allow any sort of manipulation imaginable. (Article)
  • Hashp - Better prn for debugging Clojure code.
  • Vizns - Visualize the relationships between your namespaces and dependencies.
  • Clip - Light structure and support for dependency injection.
  • Spyscope - Trace-oriented debugging tools for Clojure.
  • Expound - Human-optimized error messages for clojure.spec.
  • Meander - Tools for transparent data transformation.
  • jsonista - Clojure library for fast JSON encoding and decoding.
  • malli - Data-driven Schemas for Clojure/Script.
  • state-machete - Functional statecharts implementation for Clojure and ClojureScript.
  • causatum - Clojure library for generating streams of events based on stochastic state machines.
  • grasp - Grep Clojure code using clojure.spec regexes.
  • sicmutils - Clojure(script) implementation of the Scmutils system for math and physics investigations in the Clojure language.
  • abclj - Clojure to Common lisp interop.
  • Cheshire - Clojure JSON and JSON SMILE (binary json format) encoding/decoding.
  • Membrane - Platform agnostic clojure library for creating user interfaces.
  • jme-clj - Clojure 3D Game Engine Wrapper, Powered By jMonkeyEngine.
  • aws-api - Clojure library which provides programmatic access to AWS services from your Clojure program.
  • alpha.spec - Clojure library to describe the structure of data and functions.
  • clojure.math.combinatorics - Efficient, functional algorithms for generating lazy sequences for common combinatorial functions.
  • Fipp - Fast Idiomatic Pretty Printer for Clojure.
  • core.logic - Logic programming library for Clojure & ClojureScript.
  • tech.io - Simple IO library to enable rapid development on at least files, http/https, s3 with optional caching.
  • core.memoize - Manipulable, pluggable, memoization framework for Clojure.
  • mount - Managing Clojure and ClojureScript app state.
  • 3DF - pub/sub system in which subscriptions can be arbitrary Datalog expressions.
  • Context - Library designed to manage system state.
  • byte-streams - Rosetta stone for all the byte representations Java has to offer.
  • Hitchhiker Tree - Functional, persistent, off-heap, high performance data structure.
  • frak - Transform collections of strings into regular expressions.
  • Methodical - Clojure multimethods just got a whole lot more powerful.
  • farolero - Thread-safe Common Lisp style conditions and restarts for Clojure(Script). (HN)
  • Missionary - Functional effect and streaming system for clojure and clojurescript.
  • danzig - Easy-to-use transducer based data analysis tools.
  • Editscript - Diff and patch for Clojure/Clojurescript data.
  • Cybermonday - Markdown as Clojure Data.
  • fset - Faster clojure.set functions.
  • riddley - Code-walking without caveats.
  • Chime - Really lightweight Clojure scheduler.
  • Chord - Lightweight Clojure/ClojureScript library designed to bridge the gap between the triad of CLJ/CLJS, web-sockets and core.async.
  • nomad - Configuration library designed to allow Clojure applications to travel painlessly between different environments.
  • Recife - Model checker library in Clojure.
  • merr - Minimal and good enough error handling library for Clojure/ClojureScript.
  • dad - Small configuration management tool for Clojure.
  • Kern - Parser Combinators Library for Clojure.
  • Morph - Library of Morphisms: Monoids, Functors, and Monads.
  • Block Storage - Clojure content-addressable data storage.
  • ClojisR - Clojure speaks statistics - a bridge between Clojure to R.
  • incomplete - Simple Clojure library providing code completion. (Article)
  • Afterglow - Live-coding lighting controller, building on the Open Lighting Architecture with Clojure and bits of Overtone.
  • Orchard - Clojure library designed to provide common functionality for Clojure development tools.
  • diehard - Clojure library to provide safety guard to your application.
  • Javelin - Spreadsheet-like dataflow programming in ClojureScript.
  • graal-build-time - Library to initialize Clojure packages at build time with GraalVM native-image.
  • Fijit - Clojure library for Scala interop.
  • luna - DSL that translates to regex.
  • Coffi - Foreign Function Interface in Clojure for JDK 17.
  • Ring-Codec - Utility library for encoding and decoding data.
  • joinery - Library to enable traversal of in-memory graph-like data structures using Clojure(Script) map protocols.
  • tools.namespace - Tools for managing namespaces in Clojure.
  • svg-clj - DSL for compiling SVG elements with Clojure(script).
  • task - Simple and functional concurrency primitives for Clojure.
  • Vigil - Turn files into asynchronous streams.
  • tools.build - Library of functions for building Clojure projects.
  • pronto - Clojure support for protocol buffers.
  • encore - Core utils library for Clojure/Script.
  • sweet-array - Array manipulation library for Clojure with "sweet" array type notation and more safety by static types.
  • process - Clojure wrapper for java.lang.ProcessBuilder.
  • Clobits - Use C inside Clojure, then run it on the JVM or compile a native binary.
  • injest - Auto-transducifying, auto-parallelizing path thread macros.
  • unilog - Easy logging setup in clojure.
  • Pathom 3 - Logic programming through attribute relationships in Clojure. (Docs)
  • cascade - Library of continuation-passing, thunk-producing versions of many Clojure core functions.
  • more.async - Small library to do more stuff with core.async.
  • Dialog - Simple just-enough logging library for Clojure.
  • fastmath - Fast primitive based math library.
  • iapetos - Clojure Prometheus Client.
  • Cronut - Clojure scheduled execution via Quartz / Integrant.
  • promesa - Promise library for Clojure(Script).
  • donut.system - Dependency injection library for Clojure and ClojureScript.
  • Hitchhiker - Functional, persistent, off-heap, high performance data structure.
  • hasch - Cross-platform (JVM and JS atm.) edn data structure hashing for Clojure.
  • at-at - Ahead-of-time function scheduler.
  • Domino - Clojure/Script data flow engine.
  • CLI-matic - Compact, hands-free [sub]command line parsing library for Clojure.
  • contajners - Idiomatic, data-driven, REPL friendly Clojure client for OCI complaint container engines inspired from Cognitect's AWS client.
  • clj-docker-client - Idiomatic, data-driven, REPL friendly Clojure Docker client inspired from Cognitect's AWS client.
  • matcher-combinators - Library for making assertions about nested data structures.
  • Claypoole - Threadpool tools for Clojure.
  • kibit - Static code analyzer for Clojure, ClojureScript.
  • Safely - Clojure's circuit-breaker library for handling retries in an elegant declarative way.
  • pp-grid - Clojure library to construct formatted text.
  • Naga - Datalog based rules engine.
  • Puget - Clojure library for printing Clojure and EDN values.
  • utf8 - Byte vector backed, utf8 strings for Clojure.
  • fast.csv - Fast implementation of CSV writing in Clojure, for when you need to write big files fast.
  • clojure.data.csv - CSV reader/writer to/from Clojure data structures.
  • pretty - Library for helping print things prettily, in Clojure - ANSI fonts, formatted exceptions.
  • viz.clj - Data Visualization Clojure library for beginners.
  • LaTTe-Kernel - Small kernel of the LaTTe proof assistant in Clojure(script).
  • insn - Functional JVM bytecode generation for Clojure.
  • transcriptor - Convert REPL interactions into example-based tests.
  • deps-bin - Clojure library that builds an embedded executable jar.
  • lsp4clj - LSP base support for any LSP that is implemented in Clojure.
  • Chisel - 3D modelling & slicing software written in Clojure, where you work directly from Clojure REPL, primary by specifying parametric curves & patches.
  • build-clj - Common build tasks abstracted into a library.
  • Tea-Time - Lightweight Clojure task scheduler.
  • Aero - Small library for explicit, intentful configuration.
  • Charred - Efficient character-based file parsing for CSV and JSON formats.
  • Knossos - Verifies the linearizability of experimentally accessible histories.
  • dtype-next - Clojure library designed to aid in the implementation of high performance algorithms and systems.
  • Omniconf - Configuration library for Clojure that favors explicitness.
  • Confair - Configuration library for Clojure.
  • json-schema - Clojure JSON Schema Validator & Generator.
  • stringer - Fast string operations for Clojure.
  • structural - Destructuring plus type hinting for more performant clojure.
  • tortilla - Thin Clojure wrapper for Java APIs providing efficient and idiomatic interop.
  • fitter - System component management library for Clojure.
  • tenet - Clojure(Script) library, which helps to create explicit and understandable results to unify and simplify the data flow.
  • init - Small Clojure framework for application initialization and dependency injection.
  • Nexus - Ergonomic dependency injection via logic programming.
  • Clojask - Clojure data frame with parallel computing on larger-than-memory datasets.
  • Schema - Clojure(Script) library for declarative data description and validation.
  • Carve - Carve out the essentials of your Clojure app.
  • Muotti - Graph based value transformer library which aims to solve value transformation.
  • Mate - Useful functions, some of which I wish were in the Clojure standard library.
  • Dom Top - Unorthodox control flow, for Clojurists with masochistic sensibilities.
  • Clojure Heap - Pure Clojure implementation of heap.
  • Interceptor - Small Interceptor lib for clojure.
  • Marginalia - Ultra-lightweight literate programming for clojure.
  • Goose - Simple, Reliable & Scalable background processing library for Clojure.
  • xforms - Extra transducers and reducing fns for Clojure(script).