This is a categorized and annotated directory of available Clojure libraries and tools. This directory is not comprehensive and is necessarily highly opinionated.
This directory is manually curated by the Clojure community. Please endeavor to keep it up-to-date, consisting of high quality libraries with adequate documentation. There are many more libraries in the Clojure ecosystem, but some lack documentation and/or are useful primarily to experienced developers and such projects are not included in this document.
For more comprehensive overview of the Clojure library ecosystem, please see ClojureSphere.
tools.cli: a command line argument parser for Clojure
environ: Manage environment settings from a number of different sources
carica (at clojars): Flexible config file usage & management library.
clojure.test: the standard unit testing library that ships with Clojure
Midje: a more featureful test framework
cloverage: a test-coverage tool (lein plug-in)
expectations (at clojars): a minimalist's testing framework
test.generative: generative testing, a la QuickCheck
conjure (at clojars): mocking and stubbing for unit tests.
cheshire (at clojars): very efficient Clojure JSON and SMILE (binary JSON) encoding/decoding.
data.json: JSON parser/generator to/from Clojure data structures.
clj-pdf: a library for easily generating PDFs from Clojure
Pantomime (at clojars): a tiny Clojure library that deals with Internet media types (MIME types) and content type detection
data.csv: a CSV parser
clj-http (at clojars): An idiomatic Clojure http client wrapping the apache client.
clj-http-lite (at clojars): A lightweight version of clj-http having almost same API, but without any Apache dependencies.
Timbre: Simple, flexible, all-Clojure logging. No XML!
tools.logging: standard general-purpose logging.
clj-log: s-expression logger.
Ring (at clojars): foundational web application library
Compojure (at clojars): concise routing library for Ring
Pedestal (at clojars): an open source tool set for building web applications in Clojure
Luminus: lein template for creating batteries-included web applications using Ring, Compojure, lib-noir, and other libraries.
Liberator (at clojars): a Clojure library for building RESTful applications
friend (at clojars): Authentication and authorization library for Web apps
hiccup: Generates HTML from Clojure data structures.
Stencil: Implements the Mustache templating language.
markdown-clj: Clojure based Markdown parsers for both Clojure and ClojureScript.
Crouton: A Clojure wrapper for the JSoup HTML and XML parser that handles real world inputs
Crawlista (at clojars): a support library for applications that crawl the Web
TagSoup: a tool for parsing html as it's found in the wild: poor, nasty, and brutish.
Validateur (at clojars): functional validations library inspired by Ruby's ActiveModel
Metis: another validations library inspired by Ruby's ActiveModel
Clj-Schema (at clojars): Schemas for Clojure Data: validation and test data generators
Urly (at clojars): unifies java.net.URL, java.net.URI and string URIs, provides parsing and manipulation helpers
Exploding Fish (at clojars): a URI library for Clojure
route-one (at clojars): a tiny Clojure library that generates HTTP resource routes (as in Ruby on Rails, Jersey, and so on)
java.jdbc: Basic wrapper for JDBC. Works with all JDBC databases (MySQL, PostgreSQL, Oracle, SQL Server, etc).
Monger (at clojars): Monger is an idiomatic Clojure MongoDB driver for a more civilized age with solid documentation
congomongo (at clojars): Basic wrapper for the MongoDB Java driver
Neocons (at clojars): Neocons is a feature rich idiomatic Clojure client for the Neo4J REST API with solid documentation
Titanium (at clojars): a Clojure graph library built on top of Titan
Archimedes (at clojars): a Clojure wrapper for Tinkerpop Blueprints
Ogre (at clojars): a Clojure library for querying Tinkerpop graphs
Elastisch (at clojars): Elastisch is a minimalistic Clojure client for ElasticSearch with solid documentation.
Cassaforte (at clojars): A young Clojure client for Apache Cassandra
clj-hector (at clojars): A simple Clojure client for Cassandra that wraps Hector
Alia (at clojars): Cassandra CQL3 client for Clojure, datastax/java-driver wrapper
masai (at clojars): a very simple interface to a number of key-value stores
jiraph (at clojars): a reasonably licensed embedded graph database with swappable backends
Lamina (at clojars): event-driven workflows in Clojure
Aleph (at clojars): asynchronous communication in Clojure
Twitter Storm (at clojars): distributed realtime computation system
Cascalog (at clojars): data processing on Hadoop without the hassle
pallet (at clojars): a platform for agile and programmatic automation of infrastructure
jclouds: unified APIs for dozens of cloud (IaaS) providers
Amazonica: comprehensive Clojure client for the entire AWS API
clj-ssh (at clojars): an SSH client
ssh-transport: executes commands over SSH
metrics-clojure (at clojars): Clojure library on top of Yammer's Metrics
clj-statsd (at clojars): simple client library to interface with statsd
pulse: Real-time Heroku operations dashboard
riemann (at clojars): A network event stream processing system, in Clojure.
File I/O is covered by the JDK and commonly used via clojure.java.io functions.
Standard streams I/O is covered by the JDK and commonly used via clojure.java.io functions.
clojure.java.shell (part of Clojure distribution): Conveniently launch a sub-process providing its stdin and collecting its stdout.
conch: for shelling out to external programs. An alternative to clojure.java.shell.
REPLy (at clojars): a Swiss army knife of interactive editing, and better REPL for Clojure
clojure-lanterna (at clojars): for creating TUIs (terminal-based user-interfaces), like ncurses.
math.numeric-tower: various utility math functions
math.combinatorics: common combinatorial functions
core.matrix: matrix operations
Postal (at clojars): generate and send email with Clojure
Mailer (at clojars): generate and send email using Postal and Moustache templates
algo.monads: macros for defining monads, and definition of the most common monads
protocol-monads: A protocol based monad implementation for clojure
vclock (at clojars): a vector clocks implementation
chash (at clojars): a consistent hashing library
Quil: For making drawings, animations, and artwork (some examples). Wraps the "Processing" graphics environment.
seesaw (at clojars): A Swing wrapper/DSL.
clisk: Clisk is a DSL-based library for procedural image generation that can be used from Clojure and Java.
Marginalia (at clojars): literate programming implementation for Clojure. See the Marginalia site for an example.
Codox (at clojars): from the author of Compojure. See compojure api docs for an example.
Autodoc (at clojars): used to generate the official Clojure API reference.
Leiningen: the Clojure build tool
tools.nrepl: nREPL interface
java.jmx: nice JMX interface
test.benchmark: a benchmarking library
tools.trace: a tracing library
criterium (at clojars): a benchmarking library that tries to address common benchmarking pitfalls