Clojure: Essential Libs for Web App

By Xah Lee. Date: . Last updated: .

here's sample of clojure libraries. They are dependencies of the gorilla-repl. [see Interactive Clojure Notebook: gorilla-repl]

Libs for Server

ring
Essential web app lib. Abstraction of HTTP. Like python's WSGI and Ruby's Rack. https://github.com/ring-clojure/ring
http-kit
Ring-compatible minimal HTTP client and server. http://http-kit.org/
ring-json
Standard Ring middleware functions for JSON requests/responses https://github.com/ring-clojure/ring-json
Compojure
Routing lib for Ring that allows web applications to be composed of small, independent parts. https://github.com/weavejester/compojure

general web related libs

Hiccup
HTML in Clojure syntax. It uses vectors to represent elements, and maps to represent a element's attributes. https://github.com/weavejester/hiccup
cheshire
JSON encode/decode. https://github.com/dakrone/cheshire

base64 encode/decode https://github.com/clojure/data.codec


nrepl
clojure network repl. Eval clojure code over network. https://github.com/clojure/tools.nrepl

Database

Carmine
A Clojure Redis client and message queue https://github.com/ptaoussanis/carmine

front end, JavaScript, ClojureScript

Reagent: Minimalistic React for ClojureScript http://reagent-project.github.io/

misc

clj-semver
version string parser, for example, parse “3.12.2”. https://github.com/grimradical/clj-semver

For Emacs

cider
emacs integration https://github.com/clojure-emacs/cider-nrepl [see Emacs: Clojure CIDER Tutorial]
Clojure-complete
is an symbol completion library for Clojure https://github.com/ninjudd/clojure-complete

not sure about the following. Leaving them here for now.

Simple Logging Facade for Java (SLF4J)
The Simple Logging Facade for Java (SLF4J) serves as a simple facade or abstraction for various logging frameworks (example: java.util.logging, logback, log4j) allowing the end user to plug in the desired logging framework at deployment time. http://www.slf4j.org/

logging framework http://logback.qos.ch/