← Back to Awesome

Sections

Clojure

GitHub repository ↗ synced 2026/8/9

Awesome Clojure Awesome

  • OneKeePass: A secure password manager and mobile app in ClojureScript

  • Penpot: design and prototyping platform

  • LightTable (IDE) (archived)

  • Maria.cloud (Online IDE for beginners)

  • Riemann (Monitoring)

  • Precursor (Online prototyping tool)

  • Puppet Server

  • PuppetDB

  • Metabase

  • Metabase Datomic

  • CircleCI

  • Avi (vim rewrite)

  • Liquid (Text Editor)

  • Clojupyter

  • meins

  • Jepsen

  • Braid: a team-chat app with a novel UI that leads to better conversations

  • Accelerated Text: a natural language generation environment (backend: Clojure, frontend: JS)

  • Ziggurat: a framework built to simplify Stream processing on Kafka

  • Nightcode: An IDE for Clojure (archived)

  • Nightlight: text editor (archived)

  • Atea: a minimalistic menu bar time tracker for MacOS (legacy, requires jvm 1.6)

  • herfi - 3D multiplayer game prototype written in Clojure and ClojureScript

  • racing-game-cljs - A 3D racing game built with ClojureScript, React and ThreeJS

  • Logseq: knowledge management and collaboration (open frontend)

  • jank

  • lux

  • mal

  • scheje

  • eden

  • ferret

  • Awesome macros usage

  • Advanced datastructures

  • Web Framework

  • Dependency injection

  • Build Automation and Package management

  • Version Control Management

  • Date and Time

  • GUI

  • Audio

  • HTTP

  • Database

  • Connection pools

  • Structural Migrations

  • Redis

  • JSON

  • Protocol Buffers and gRPC

  • ORM and SQL generation

  • Security

  • RESTful API

  • GraphQL API

  • Emails

  • HTML Manipulation

  • Data Validation

  • Type System

  • Pattern Matching

  • Async processing

  • Monads

  • WebSocket

  • Testing

  • Webdriver automation

  • Code Analysis and Linter

  • Science and Data Analysis

  • Machine Learning

  • Computer Vision

  • Text Processing

  • Parsing

  • Editor Plugins

  • Documentation

  • Literate Programming

  • Archives and Compression

  • Miscellaneous

  • Debugging tools

  • CI

  • Project Management

  • Terminal UI

  • Graphviz

  • Guides

  • Video tutorials

  • Websites

  • Twitter

  • Exercises

Awesome macros usage

Answers why the lisp shines, killer features in action

  • core.async - transforms AST into CSP programs
  • cloroutine - suspends and continuations (coroutines)
  • missionary - a reactive dataflow programming toolkit
  • photon - realtime web, like Meteor, but for Clojure(Script)
  • metaclj - staged compilation
  • meander - transparent data transformation using datastructure pattermatching
  • proteus - introduce mutable variables (don't use, just learn how to map your mind into immutable world)

Advanced datastructures

  • specter: an elegant API for querying and transforming nested and recursive data
    • meander: transparent data transformation (defined as pattern-matching)
    • Persistent AVL trees: persistent sorted maps and sets with log-time rank queries
    • Finger Tree: double-list, counted-double-list, counted-sorted-set
    • Hitchhiker Tree: create fast, snapshottable, massively scalable databases
    • Hierarchical set
    • Ordered: ordered sets and maps
    • Lazy Map: whose values are only calculated when accessed
    • Duratom: persisted atoms
    • Durable Queue: queue persisted on disk
    • bifurcan: linear map/set/list (stores entries contiguously in memory), ;writtern in java, but test suite (read: usage examples) in clojure

Web Framework

Actually don't search rails/django here, but compose them by yourself

  • Compojure
  • Compojure-api
  • Luminus
  • Duct
  • Pedestal
  • Datsys
  • yada
  • Hoplon
  • Fulcro
  • Coast
  • Reitit
  • Tadam
  • Column
  • Biff

Dependency injection

Managed lifecycle of stateful objects

  • Component
  • System
  • mount
  • Integrant
  • clip
  • piotr-yuxuan/closeable-map
  • darkleaf/di

Build Automation and Package management

Libraries for project build automation and package/dependency management.

  • Leiningen
  • Boot
  • tools.build
    • build.simple
  • clojurephant (Gradle plugin)
  • shadow-cljs (Clojurescript)

Version Control Management

Code utilities for interacting with VCS software

  • clj-jgit

Date and Time

Libraries for working with dates and times.

  • clj-time
  • clojure.java-time - Java 8 Date-Time API
  • holi - Calendar operations that are aware of weekends and holidays
  • timewords
  • tick: Clojure(Script) library, intended as replacement for clj-time

GUI

  • seesaw
    • trikl
    • fx-clj

Audio

  • Overtone
    • Alda

HTTP

Libraries for working with HTTP.

  • clj-http : Apache HttpComponents client wrapper
  • http-kit : Simple, high-performance event-driven HTTP client and server
  • ring : HTTP server abstraction
  • kvlt : Uniform, asychronous client interface for HTTP across JVM / Node / browsers
  • aleph : Async client/server based on Netty, with defaults for HTTP, TCP and UDP
  • hato : An HTTP client for Clojure, wrapping JDK 11's HttpClient

Database

Databases and database client libraries

  • Datomic
  • xtdb: bitemporal database for SQL, Datalog & graph queries
  • Datahike
  • Datascript
  • Datalevin
  • next.jdbc
  • clojure.java.jdbc
  • clojure.jdbc
  • cravendb
  • Monger: for MongoDB
  • Monglorious: for MongoDB
  • cmql: for MongoDB
  • clj-rethinkdb: for RethinkDB
  • Revise: for RethinkDB
  • Spandex: for ElasticSearch
  • Elastisch: for ElasticSearch
  • neocons: for Neo4j
  • Alia: for Cassandra
  • aerospike-clj: for Aerospike

Connection pools

Database connection pools

  • hikari-cp
  • metabase/connection-pool

Structural Migrations

Keeps database and others in sync

  • Lobos
  • Ragtime
  • Joplin
  • Migratus
  • Drift

Redis

  • carmine
    • celtuce

JSON

  • cheshire
    • jsonista

Protocol Buffers and gRPC

  • pronto
    • lein-protodeps
    • protojure

ORM and SQL generation

DSL for SQL generation.

  • Walkable
  • Korma
  • Specql
  • stch-library/sql
  • sqlingvo
  • sqlium
  • honeysql
  • Toucan

Security

Authentication, authorization and other security related libraries.

  • Buddy
  • caesium (libsodium bindings)
  • Friend
  • secrets.clj
  • bolt
  • EACL: Situated ReBAC authorization library inspired by SpiceDB and backed by Datomic Pro, Datahike or DataScript.

RESTful API

Libraries for developing RESTful APIs.

  • Liberator
  • Compojure-api
  • Friboo
  • yada
  • router
  • reitit

GraphQL API

Libraries for developing GraphQL APIs.

  • Lacinia

Emails

  • postal

HTML Manipulation

Libraries for working with HTML.

  • Enlive
  • hiccup
  • clostache
  • selmer

Data Validation

Libraries for validating data.

  • Guardrails
  • Malli
  • Validateur
  • Prismatic's schema
  • Bouncer
  • clova
  • Orchestra
  • struct
  • domaintypes

Type System

Optional type system for Clojure

  • core.typed

Pattern Matching

  • core.match
    • defun
    • cats.match
    • Akar
    • Meander
    • Verbal-Exprejon

Async processing

  • core.async
    • pulsar
    • manifold
    • goose

Monads

  • cats
    • algo.monads
    • Fluokitten

WebSocket

  • Chord
    • Sente
    • aleph

Testing

  • Expectations
    • Midje
    • test-doubles
    • kaocha
    • StateFlow
    • Datest

Webdriver automation

  • Etaoin

Code Analysis and Linter

  • Slamhound
    • eastwood
    • kibit
    • yagni
    • lein-bikeshed
    • spectrum
    • cloverage
    • clj-kondo
    • splint

Science and Data Analysis

Libraries, extended REPLs, and other tools for scientific and statistical data
anylysis and visualization.

  • Incanter
  • Cascalog
  • Onyx
  • sparklling
  • flambo
  • Neanderthal
  • Streaming Histograms
  • Gorilla REPL
  • Bayadera - Bayesian Data Analysis on the GPU
  • ClojureCUDA
  • Neanderthal - fast matrix and linear algebra
  • ClojureCL - parallel computations with OpenCL
  • Loom - graph library for Clojure

Machine Learning

  • neanderthal: fast matrix library
    • clojurecuda
    • clojurecl
    • bayadera: bayesian data analysis on the GPU
    • cortex
    • Flare
    • MXNet - Clojure API
    • clj-bigml
    • Deeplearning4j
    • Enclog
    • lambda-ml
    • clojure-tensorflow
    • dl4clj (deeplearning4j to clojure)
    • Anglican
    • clj-ml
    • Clatern
    • k9
    • Statistiker
    • Synaptic
    • Infer
    • clj-synapses
    • scicloj.ml

Computer Vision

  • origami: OpenCV 4 wrapper
    • clj-tesseract
    • vision

Text Processing

  • clojure-opennlp
    • postagga
    • beagle
    • lmgrep

Parsing

  • Instaparse
    • kern
    • duckling
    • buran - RSS/Atom feed consumer and producer

Exceptions and Error Handling

  • Ex
    • Perseverance
    • Dire

Rule-based Programming

  • O'Doyle Rules
    • Clara Rules
    • Arete

Editor Plugins

  • Calva (VSCode)
    • clojure-lsp (multiple editors)
    • CIDER (Emacs)
    • smartparens (Emacs)
    • rainbow-delimiters (Emacs)
    • aggressive-indent (Emacs)
    • Conjure (Neovim)
    • vim-cljfmt (Vim)
    • vim-eastwood (Vim)
    • vim-fireplace (Vim)
    • vim-redl (Vim)
    • vim-leiningen (Vim)
    • rainbow_parentheses.vim (Vim)
    • vim-iced (Vim)
    • Cursive (IntelliJ)
    • proto-repl (Atom)
    • Parinfer (multiple editors)
    • Bracket Pair Colorizer (VSCode)
    • clojureVSCode (VSCode)
    • Notepad++: modified config files of Lisp

Documentation

Utilities and libraries for (non-LP) code and project documentation

  • codox

Literate Programming

  • marginalia
    • klipse
    • blackfog

Archives and Compression

  • swindon (java.util.zip wrapper)

Miscellaneous

  • potemkin - reexport vars in another ns / act like a clojure map
  • clj-tuple
  • slingshot
  • virgil
  • javastar
  • riddley
  • kezban
  • clj-grpc

Debugging

  • flow-storm-debugger
    • playback
    • tools.trace
    • debugger
    • debug-repl
    • ritz
    • redl
    • limit-break
    • spyscope
    • aprint
    • packed-printer
    • pretty
    • prone
    • figwheel
    • ultra
    • mate-clj
    • scope-capture

CI

  • lambdacd

Project Management

  • milestones

Terminal UI

  • clojure-lanterna
    • triki
    • zaffre
    • closh
    • piotr-yuxuan/malli-cli

Graphviz

  • zipper-viz
    • dorothy
    • viz.cljc
    • fsmviz
    • rhizome
    • re-frame-flow - Graph based visualization tool for re-frame event chains (ClojureScript)

Game Development

  • jme-clj - A Clojure 3D Game Engine (Wrapper), Powered by jMonkeyEngine
    • play-cljc - A Clojure and ClojureScript game library

Guides

  • The Clojure Style Guide
    • Clojure Distilled
    • clojure-cookbook
    • A Brief Beginner's Guide To Clojure
    • Clojure for the Brave and True
    • Clojure from the ground up
    • Error message catalog
    • Clojure by Example

Video tutorials

YouTube

  • Misophistful's channel: Understand concepts such as list comprehension, threading macros, generative testing, destructuring, core.match and introductions to Light Table, Datomic and Game development with Clojure
    • Fred Overflow's channel: Introductions to Functional programming and TDD with Clojure
    • Clojure Pills screencast: Introduction to Clojure one function at a time
    • Clojure Pills screencast: Fun and beginner friendly content related to the overall clojure ecosystem
    • Data persistance with Postgres, Clojure and JDBC
    • Clojure Tutorials by Timothy Baldridge: More advanced videos on core.async, transducers, transients, logic programming and a "Function of the day" series.

Websites

  • Clojure
    • Clojure Slack
    • clojuredocs
    • clojure-doc
    • The Clojure Toolbox
    • ZEEF/Clojure
    • Clojure Land

Twitter

  • oss_clj

Exercises

  • rich4clojure
    • Wonderland Clojure Katas
    • Clojure Koans
    • exercism.io
    • Codewars