Awesome Clojure
-
- LightTable (IDE)
- Nightcode (IDE)
- Maria.cloud (Online IDE for beginners)
- Riemann (Monitoring)
- Precursor (Online prototyping tool)
- Puppet Server
- PuppetDB
- Metabase
- CircleCI
- asciinema
- Avi (vim rewrite)
- Liquid (Text Editor)
- Nightlight (Text Editor)
- Clojupyter
- Meo
- Jepsen
- Braid: a team-chat app with a novel UI that leads to better conversations
-
- 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
- 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
- Natural Language Processing
- Parsing
- Reflection
- Editor Plugins
- Documentation
- Literate Programming
- Archives and Compression
- Miscellaneous
- Debugging tools
- CI
- Project Management
Advanced datastructures
- 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, enduro, perdure: atoms persisted on disk
- 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
- Web Non-Framework
- Luminus
- Joodo
- Coils
- Duct
- Pedestal
- Datsys
- yada
- Hoplon
- Fulcro
- Coast
- Reitit
Dependency injection
Managed lifecycle of stateful objects
Build Automation and Package management
Libraries for project build automation and package/dependency management.
Version Control Management
Code utilities for interacting with VCS software
Date and Time
Libraries for working with dates and times.
GUI
Audio
HTTP
Libraries for working with HTTP.
Database
Databases and database client libraries
- Datomic
- Datahike
- Datascript
- Cassandra
- clojure.jdbc
- cravendb
- Mongo
- Monglorious
- RethinkDB
- Revise (RethinkDB)
- Spandex (ElasticSearch)
- Elastisch
- Neo4j
Connection pools
Database connection pools
Structural Migrations
Keeps database and others in sync
Redis
JSON
Database Cli
ORM and SQL generation
DSL for SQL generation.
Security
Authentication, authorization and other security related libraries.
RESTful API
Libraries for developing RESTful APIs.
GraphQL API
Libraries for developing GraphQL APIs.
Emails
HTML Manipulation
Libraries for working with HTML.
Data Validation
Libraries for validating data.
Type System
Optional type system for Clojure
Pattern Matching
Async processing
Monads
WebSocket
Testing
Webdriver automation
Code Analysis and Linter
Science and Data Analysis
Libraries, extended REPLs, and other tools for scientific and statistical data anylysis and visualization.
- Incanter
- Cascalog
- Onyx
- sparklling
- flambo
- Neanderthal
- lucid.graph
- 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
- clj-ml
- cortex
- clj-bigml
- Clatern
- Deeplearning4j
- Enclog
- Infer
- k9
- lambda-ml
- Statistiker
- Synaptic
- clojure-tensorflow
- dl4clj (deeplearning4j to clojure)
- Anglican
Computer Vision
Natural Language Processing
Parsing
Exceptions and Error Handling
Reflection
*Libraries for improved code reflection and object introspection
Editor Plugins
- Calva (VSCode)
- CIDER (Emacs)
- smartparens (Emacs)
- rainbow-delimiters (Emacs)
- aggressive-indent (Emacs)
- vim-cljfmt (Vim)
- vim-eastwood (Vim)
- vim-fireplace (Vim)
- vim-redl (Vim)
- vim-leiningen (Vim)
- rainbow_parentheses.vim (Vim)
- vim-iced (Vim)
- Cursive (IntelliJ)
- Parinfer (multiple editors)
- Bracket Pair Colorizer (VSCode)
Documentation
Utilities and libraries for (non-LP) code and project documentation
Literate Programming
Archives and Compression
Miscellaneous
Debugging
- tools.trace
- debugger
- debug-repl
- ritz
- redl
- limit-break
- spyscope
- aprint
- packed-printer
- pretty
- prone
- figwheel
- ultra
CI
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
- Data persistance with Postgres, Clojure and JDBC
- Clojure Tutorials by Timothy Baldridge: More advanced videos on core.async, tranducers, transients, logic programming and a "Function of the day" series.
Websites
- Clojure
- Clojure Slack
- clojuredocs
- crossclj
- clojure-doc
- Grimoire
- The Clojure Toolbox
- InstaREPL Online
- ZEEF/Clojure
- Try Clojure