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).
- Martian - HTTP abstraction library for Clojure/script, supporting OpenAPI, Swagger, Schema, re-frame and more.
- Biff - Clojure web framework.
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. (HN)
- 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.
- next.jdbc - Modern low-level Clojure wrapper for JDBC-based access to databases.
- cozo-clj - Clojure bindings for CozoDb.
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.
- cartestian - Test all the combinations.
- datapotato - Better database fixtures for tests.
- spec.alpha - Clojure library to describe the structure of data and functions.
- Hawk - State-of-the-art Clojure test runner.
Graphics
- Clojure2D - Library supporting generative coding or glitching. (Examples)
- Quil - Clojure/ClojureScript library for creating interactive drawings and animations. (Web)
- HumbleUI - Clojure Desktop UI framework. (Wordle in Clojure with Humble UI) (Starter)
- cljbox2d - Idiomatic and cross-platform Clojure version of the Box2D physics engine API.
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).
- True Grit - Data-driven, functionally-oriented, idiomatic Clojure library for circuit breakers, bulkheads, retries, rate limiters, timeouts, etc.
- Pattern - Lets you transform data structures in amazing ways.
- Clojupedia - Community maintained hub for Clojure libraries and tools, powered by Logseq.
- Proletarian - Durable job queuing and worker system for Clojure backed by PostgreSQL.
- backtick - Clojure's syntax-quote reader macro as a normal macro.
- thrempl - Simple template engine using threading macros.
- TOML - Clojure TOML wrapper.
- Mundaneum - Clojure wrapper around WikiData.
- tilakone - Minimalistic finite state machine (FSM) in Clojure.
- core.matrix - Multi-dimensional array programming API for Clojure.
- raphael - Clojure library for parsing strings.
- Datasplash - Clojure API for a more dynamic Google Dataflow.
- Medley - Lightweight library of useful Clojure functions.
- match - Optimized pattern matching library for Clojure.
- deps-deploy - Clojure library to deploy your stuff to clojars with clj or clojure.
- flex - Library for building reactive computation graphs in Clojure(Script).
- Tab - Tool for tabulating Clojure collections.
- Emmy - Emmy Computer Algebra System.
- Electric Clojure - Signals DSL for full stack web UI, with compiler-managed network sync. (HN)
- Duratom - Durable atom type for Clojure.
- Lasagna-Pull - Query Data from Deep Data Structures.
- ordered - Ordered sets and maps.
- Tiara - Small data structure library.
- openai-clojure - Clojure functions to drive the OpenAI API.
- loom - Graph library for Clojure.
- flowmaps - Flow Based Programming Clojure Micro-Framework.
Links
- Clojure Libraries
- Clojars - Easy to use community repository for open source Clojure libraries.
- How-to: Clojure libraries on Maven Central (2021)
- Antq - Point out your outdated dependencies.
- SciCloj - Community of people creating high-quality open source solutions for data science in Clojure. (GitHub)
- deps-modules - Clojure "tool" that attempts to solve one of the "multi module" project problems with tools.deps in a minimalistic way.
- deps-new - New, simpler alternative to clj-new.
- neil - CLI to add common aliases and features to deps.edn-based projects.
- Clojure Garden - Navigator in the Clojure ecosystem.
- Snowball - View the sizes of your dependencies.
- mobiletest - Example of building a clojure library for iOS with graalvm native-image.
- Grease - Example of building a clojure library for iOS with graalvm native-image.
- Clojure calling C - Call C from Clojure using GraalVM -- then compile a binary using native-image.
- lein-native-image - Leiningen plugin to build GraalVM native images.
- Hash Array Mapped Tries in Clojure
- clay - Tiny Clojure tool for a dynamic workflow with some of the more serious visual tools.
- clj-nix - Nix helpers for Clojure projects.
- Quickdoc - Quick and minimal API doc generation for Clojure.
- build.edn - Make your Clojure library build process easy.
- exoscale tools.project - Helpers to work with our tools.deps projects.
- clj-depend - Clojure namespace dependency analyzer.
- Clojure needs a Rails (2022) (HN)
- New Clojure project quick start (2022) (HN)
- Morpheus - Generate dependency graphs for variables in Clojure(Script) namespaces.
- Loopr: A Loop/Reduction Macro for Clojure (2022) (HN)
- Babashka Babooka: Write Command-Line Clojure
- deps-try - Quickly try out Clojure dependencies on rebel-readline.