Skip to content
Branch: master
Go to file

Latest commit


Failed to load latest commit information.
Latest commit message
Commit time


this project is deprecated and it's no longer actively maintained

A set of utilities and helpers for building ring apps.

Continuous Integration status

Some of the core features includes the following:

  • stateful sessions and cookies
  • static resource management and file uploads
  • custom response types and redirects
  • input validation
  • content caching
  • route filtering and redirection
  • password hashing using SCrypt

See the API for more details.

This library was originally split out from the Noir web framework for your enjoyment.

This library is being actively developed separate from Noir. Nothing in here is specific to Noir and the purpose of it is to be used from any ring-based web framework, such as Moustache and Compojure.


You want to use Leiningen, of course. Add this to your :dependencies

Clojars Project

Breaking changes in 0.9.5

lib-noir now uses scrypt as its crypto implementation. This breaks compatibility with the existing password hashes encrypted using bcrypt.

Breaking changes in 0.7.4

The :store key in noir.util.middleware/app-handler has been replaced with the :session-options key that allows specifying any Ring session parameters, eg:

(def app
    [home-routes app-routes]
    :session-options {:cookie-name "example-app-session"
                      :store (cookie-store)}))

Breaking changes in 0.6.2

The access rule handling has been changed in 0.6.2, please see documentation for details


A lot of these libraries were originally written by Chris Granger and included in the Noir web framework before its deprecation. These libraries were split out into this library and additions and changes have been made over time.



There is a very pretty list of contributors here


A set of libraries for ring apps, including stateful sessions.



You can’t perform that action at this time.