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.

Support Libraries


Applications & Environment

  • 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.

Date and Time

  • clj-time: A date and time library for Clojure


Namespaces and Code-as-Data



  • cheshire (at clojars): very efficient Clojure JSON and SMILE (binary JSON) encoding/decoding.

  • data.json: JSON parser/generator to/from Clojure data structures.

Protocol Buffers


Clojure Reader


  • data.xml: a library for reading and writing XML

Binary Formats

  • gloss (at clojars): turns complicated byte formats into Clojure data structures

File formats

  • 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.

Web Development

Web Services

  • 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

HTML Generation

  • hiccup: Generates HTML from Clojure data structures.

  • Stencil: Implements the Mustache templating language.

  • markdown-clj: Clojure based Markdown parsers for both Clojure and ClojureScript.

HTML Parsers

  • 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.

Data Validation

  • 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, 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)

Internationalization (i18n), Localization (l10n)

  • Tower (at clojars): a simple, idiomatic internationalization and localization story for Clojure


  • clj-rss: RSS feed generation library

Data Stores

Relational Databases, JDBC




  • Welle (at clojars): An expressive Clojure client for Riak with solid documentation


Graph Databases (Neo4J, Titan, etc)


Memcached, Couchbase, Kestrel

  • Spyglass (at clojars): Spyglass is a very fast Clojure client for Memcached and Couchbase with solid documentation

Apache Cassandra

Amazon DynamoDB

Tokyo Cabinet


  • 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


Application Servers

  • Immutant (at clojars): a feature rich and integrated application platform for Clojure from Red Hat



  • Langohr (at clojars): a feature complete RabbitMQ client that embraces AMQP 0.9.1 model and learns from others


  • Jilch (at clojars): Clojure ZeroMQ Library using JeroMQ, no native dependencies


Amazon SQS

  • Bandalore: a Clojure client library for Amazon's Simple Queue Service


Data Processing, Computation

Natural Language Processing

Parsers, Parser Combinators, Language Construction

Automation, Provisioning, DevOps Tools

Monitoring, metrics


Files, NIO, NIO2

File I/O is covered by the JDK and commonly used via functions.

  • fs (at clojars): utilities for working with the file system
  • nio: Clojure library for working with for Java NIO classes

Standard Streams, Subprocesses

Standard streams I/O is covered by the JDK and commonly used via functions.

  • (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

Property Files

REPL and Terminal

Concurrency and Parallelism



Data Structures and Algorithms


  • clojure.string


  • clojure.set


  • core.cache: the Clojure API for various cache implementations



  • algo.monads: macros for defining monads, and definition of the most common monads

  • protocol-monads: A protocol based monad implementation for clojure




Graphics and GUI

  • 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.

Security and Sandboxing


Literate Programming

Generating API Reference