Luminus aims to provide solid defaults for creating your web application. As such it comes packaged with several libraries by default. These libraries include Buddy for security, Bouncer for validation, Selmer for HTML templating, Tower for internationalization and a few others. Of course, there are many other Clojure libraires for web development. Here we are going to provide a list of Clojure and ClojureScript libraries which can be useful in addition to those already included with Luminus.
Assets
- Stefon - asset pipeline ring middleware
- lein-asset-minifier - a Leiningen plugin to minify CSS and Js assets
Authentication
- Friend - an extensible authentication and authorization library
- clj-ldap - a library for talking to LDAP servers
- ring-basic-authentication - Ring middleware to enforce basic authentication
- ring-oauth2 - Ring middleware that acts as a OAuth 2.0 client
Caching
- Spyglass - a Memcached client (also: Couchbase, Kestrel)
- core.cache - a caching library implementing various cache strategies
Configuration
- lein-init-script - a plugin for *nix init script generation
ClojureScript
- Om - ClojureScript interface to Facebook's React
- Kioo - DOM manipulation and templating library for Reagent/Om
- Hickory - parses HTML into Clojure data structures
- Sente - bidirectional a/sync comms over both WebSockets and Ajax (auto-fallback)
- Datascript - central, uniform approach to manage all application state
- Garden - a library for rendering CSS in Clojure and ClojureScript
- Dommy - a no-nonsense templating and (soon) dom manipulation library
- json-html - generates human representation of the JSON/EDN encoded data
- lein-externs - a plugin to automatically generate externs files for Js libs
Database clients
- Carmine - Clojure Redis client & message queue
- Cassaforte - A young client for Apache Cassandra 1.2+
- Clutch - a library for Apache CouchDB
- CongoMongo - Wrapper for the mongo-db java api
- Monger - a client for MongoDB
- Neocons - a feature rich idiomatic client for the Neo4J REST API
- pgjdbc-ng - JDBC driver with PostgreSQL specific features
- Rotary - DynamoDB API
- Rummage - a client library for Amazon's SimpleDB (SDB)
- Welle - an expressive client for Riak
Database Migrations
SQL Libraries
- Honey SQL - a Korma alternative DSL for building SQL queries
- clojure.java.jdbc - a low level wrapper for Java JDBC
- blackwater - a library for logging SQL queries and the time they took for Korma and clojure.java.jdbc
- walkable - Datomic pull syntax for building SQL queries
Dependency Injection
Graphics
- Analemma - a Clojure-based SVG DSL and charting library
- Monet - a small ClojureScript library to make it easier (and performant) to work with canvas
Template Languages
- Cuma - extensible micro template engine for Clojure.
- Basil - a general purpose template library
- Stencil - a fast, compliant implementation of Mustache
- Enlive - a selector-based (à la CSS) templating and transformation system
Miscellaneous
- clj-pdf - PDF report generation library
- clj-rss - a library for generating RSS feeds
- metrics-clojure - a thin Clojure façade around Coda Hale’s wonderful metrics library
- ring-logger-timbre - log Ring requests & responses using Timbre
- slf4j-timbre - SLF4J binding for Clojure's Timbre logging library
- ring-cors CORS middleware for Ring
- ring-rewrite - Ring middleware for defining and applying rewrite rules
- Pantomime - a Library For Working With MIME Types
- Route One - a library that generates HTTP resource routes (as in Ruby on Rails and similar modern Web application frameworks)
- Schema - a Clojure(Script) library for declarative data description and validation.
- Urly - a library that unifies parsing of URIs, URLs and URL-like values like relative href values
- Validateur - a validation library inspired by Ruby's ActiveModel
- aging-session - a memory based ring session store that has a concept of time
- Timbre - a Clojure/Script logging and profiling library
- Throttler - token bucket algorithm to control both the overall rate as well as the burst rate for function calls (e.g. incoming requests)
- Elastisch - a minimalistic Clojure client for ElasticSearch, a modern distributed search engine
- cronj - a library for scheduling tasks
- ring-async - a Ring adapter for supporting asynchronous responses
- lein-nvd - National Vulnerability Database dependency-checker plugin for Leiningen
Web Services
- sweet-liberty - a library for building database-backed RESTful services
- Liberator - a library for creating REST services
- necessary-evil - XML RPC library for Clojure
- lacinia - a GraphQL implementation for Clojure
It's just few categories, more libraries related to web development for testing, data validation, text search, random data generation, JSON parsing, exception handling, SQL abstractions and other can be found on The Clojure Toolbox and ClojureWerkz websites.