| Ring-Serve | Ring-Serve provides a convenient way of starting a web server for a Ring handler. |
| lein-ring | Ring middleware that automatically reloads modifed source files |
| ring-reload-modified | Ring middleware that automatically reloads modifed source files |
| Conjure | Conjure is a Rails like framework for the Clojure programming language |
| ring-persistent-cookies | ring-persistent-cookies gives you ring.middleware.cookies compatible cookies with an expiration date. |
| Noir | Noir is a micro-framework that allows you to rapidly develop websites in Clojure. |
| clj-vaadin | Clojure wrapper for the Java Vaadin web development framework. |
| Immutant | A platform for Clojure apps built on JBoss AS7 |
| ringMon | A Ring middleware that injects single monitoring page into a Clojure web application based on Ring library or on higher level web frameworks such as Noir or Compojure. It is also easily added as a dev dependency to any Clojure applications as well. |
| crawlista | Crawlista is a support library for Clojure applications that crawl the Web. |
| Joodo | Born of a need to build fast, clean web applications, Joodo uniquely satisfies a need of Clojure frameworks. Taking inspiration from the self-discipline of martial arts and the attention to detail of Old World artisans, Joodo is a carefully crafted tool that will aid you in forging the best applications you can imagine. |
| Slice | Write composable slices of html, css, and js in Clojure. |
| Hiccup-Bridge | Hiccup-bridge is a conversion tool between html and the functions which include hiccup vector. |
| clj-haml | clj-haml is small HTML template library for Clojure inspired by the Ruby template library Haml (http://haml.hamptoncatlin.com/). |
| Enlive | A selector-based (à la CSS) templating and transformation system for Clojure |
| Clj-StringTemplate | Clj-StringTemplate is a simple Clojure wrapper around the StringTemplate library. |
| fleet | Templating system for Clojure |
| Hiccup ★ | Hiccup is a library for representing HTML in Clojure. It uses vectors to represent tags, and maps to represent a tag's attributes. |
| flutter | Flutter: Hiccup based HTML form fields for clojure. |
| clj-soy | A library for using Google's Closure Templates in Clojure. |
| tinsel | Selector-based templates with Hiccup |
| clostache | {{ mustache }} for Clojure. Compliant with the Mustache spec since version 1.0. Supporting lambdas since version 1.1. |
| mustache.clj | mustache.clj - Logic-less {{mustache}} templates for Clojure. mustache.clj is a (yet another) implementation of the Mustache template system for Clojure. By preprocessing template into a tree like data structure, It's quite fast. |
| ring.velocity | A Clojure library designed to render velocity template for ring/compojure in clojure. |
| Formative | A Clojure library for dealing with web forms. In particular, it can: - Render a form via pluggable renderers (comes with Bootstrap and other renderers built in) - Parse form data from Ring params - Validate parsed data using Verily |
| ring-basic-authentication | Ring middleware to enforce basic authentication as described in RFC2617 section 2 |
| ring-anti-forgery | This middleware prevents CSRF attacks by providing a randomly-generated anti-forgery token. |
| Friend | An extensible authentication and authorization library for Clojure Ring web applications and services. |
| clauth | This is a simple OAuth 2 provider that is designed to be used as a primary authentication provider for a Clojure Ring app. It currently handles OAuth2 bearer authentication and interactive authentication. |
| friend ★ | An extensible authentication and authorization library for Clojure Ring web applications and services |
| friend-oauth2 | friend-oauth2 is an oauth2 workflow for Chas Emerick's Friend library. |
| ring ★ | Ring is a Clojure web applications library inspired by Python's WSGI and Ruby's Rack. By abstracting the details of HTTP into a simple, unified API, Ring allows web applications to be constructed of modular components that can be shared among a variety of applications, web servers, and web frameworks. |
| Sandbar | A Clojure web application library with higher level abstractions for Compojure and Ring |
| ring-etag-middleware | Calculates etags for ring responses and returns 304 responses when appropriate. |
| ring-gzip-middleware | Gzips ring responses for user agents which can handle it. |
| ring-json-params | Ring middleware for parsing JSON into params |
| session-expiry | Session-expiry is a Clojure/Ring middleware that set session expiration. |
| ring-upload-progress | Provide upload progress data in ring session |
| Clothesline | A port of erlang webmachine to clojure. Clothesline offers a modular way to provide HTTP services that behave correctly according to the HTTP 1.1 specification. It is particularly useful for services that heavily leverage the HTTP spec, headers, and behaviors. But, it can be useful even for simple services because of the fine-grained control it gives over the decision-making process for web requests. |
| RRSS | A simple Ring session store implemented on top of Redis using Jedis. |
| mongodb-session | Mongodb-session use mongodb as a Clojure/Ring's http session storage. |
| ring-session-riak | This permits you to store your ring session in riak. |
| Ring Java Servlet | Allows you to embed ring handlers in existing java web applications without having to add an AOT phase to your build process, by providing you with a generic way to declare servlets in your web.xml, and where the clojure ring handler is located. |
| ring-partial-content | Ring middleware to provide Partial Content responses as described in RFC2616 section 10.2.7. |
| clojax | Clojax reduces repetition when writing ajaxy web applications. Instead of having to write the server side function, the route that calls it, and the javascript that ajaxes the route, defajax writes the latter two from the former. |
| ring-clj-params | A Ring middleware that augments :params according to a parsed Clojure data literal request body. |
| Aging Session | A memory based ring session store that has a concept of time. The primary goal is to allow the session store to deallocate old sessions. While much of this may be written on top of the standard ring session store, there is ultimately no way to get rid of sessions that are no longer being visited. Useful for expiring sessions or requiring reauthentication after of period of inactivity. |
| lib-noir | A set of libraries for ring apps, including stateful sessions. All of these libraries were split out from the Noir web framework for your enjoyment. There are libraries/middleware for stateful sessions, validation, cookies, as well as utilities for creating ring response maps (higher level than ring.util.response) and encrypting passwords and such. These libraries will be maintained separate from Noir, and if you already use the Noir web framework, you already have this library. Nothing in here is specific to Noir and the purpose of it is to be used from any ring-based web framework, such as mustache and compojure. |
| App Engine Magic ★ | The appengine-magic library attempts to abstract away the infrastructural nuts and bolts of writing a Clojure application for the Google App Engine platform. |
| ring-httpcore-adpater | Ring adapter for the Apache HttpCore webserver |
| ring-mongrel2-adapter | Ring Mongrel2 adapter. |
| ring-netty-adapter | Netty Support for Ring. Netty is a NIO client server framework which enables quick and easy development of network applications such as protocol servers and clients. |
| ring-jetty7-adapter | Jetty 7 adapter for ring |
| ring-servlet-middleware | Exposes information from the underlying servlet. Also includes a dummy wrapper for simulating a servlet environment, which is useful during development. |
| Compojure ★ | Compojure is a small, open source web framework for the Clojure programming language. |
| Clout | Clout is a library for matching Ring HTTP requests. It uses the same routing syntax as used by popular Ruby web frameworks like Ruby on Rails and Sinatra. |
| Fjord | A minimal ring app framework |
| Moustache | Moustache is a micro web framework/internal DSL to wire Ring handlers and middlewares. |
| funkyweb | funkyweb is a clojure web framework with route inference. It uses the name of the controller and actions to generate routes and url helpers. |
| Cascade | Welcome to Cascade! Cascade is a web framework for Clojure that emphasizes idiomatic use of Clojure while drawing inspiration from the Apache Tapesty web framework. |
| route-one | Route One is a tiny Clojure library that generates HTTP resource routes (as in Ruby on Rails, Jersey, Noir and similar modern Web application frameworks). It is meant to be used in HTTP clients, programs that deliver emails with links, testing environments and so on. Route One is intentionally small and has very limited feature scope. |
| Remix | Mix and match machinery in Clojure for web and sql. |
| Compojure-rest | Compojure-rest is a thin layer for building RESTful applications on top of compojure. It is loosely modeled after webmachine. It provides a bunch of decorates which can be combined to provide a sophisticated implementation of the HTTP RFC. |
| Rest-serv | Rest-serv is a lib for simple REST services inspired by Mark McGranahan's great post on building Clojure REST APIs. |
| wakeful | Wakeful is a Restful routing alternative for Clojure. It makes it really easy to connect your web api to namespaces in your project. |
| liberator | Liberator is a Clojure library for building RESTful applications. |
| liberator-bootstrap | A simple example of how to use the liberator library for developing RESTful APIs, in a project. |
| form-dot-clj | Form-dot-clj is library for handling the display and validation of forms. It Supports HTML5 forms, javascript validation and plain HTML. It should work with most methods of generating HTML. |
| pour | pour is a web form validation library for the Clojure programming language |
| clj-decline | clj-decline is a validation library that hopefully will turn out to be simple enough to be useful. clj-decline does not place limits on what it can validate. It does not restrict itself to web and will never do so. With regards to the kind of rejection messages (errors) it can generate, the only restriction is that they should be indexed by a key. |
| clojurejs | Clojure library for translating a Clojure subset language to Javascript. |
| Gaka | Gaka is a CSS-generating library for Clojure inspired partly by Sass and similar to Hiccup. |
| CSSGen | A clojure library to generate CSS code using an embedded domain-specific language (EDSL). In plain words: generate CSS files by writing clojure code. |
| Scriptjure | Scriptjure is a Clojure library for generating javascript from Clojure forms. Its primary goal is to make it simple to embed "glue" javascript in Clojure webapps. Generated Scriptjure javascript is intended to be readable. |
| clj-style | A CSS generation library for Clojure. It extends the gaka library with a few convenience macros and functions to provide a little bit different interface. While there should be no issues using pieces of both clj-style and gaka, you would generally only use one. |