A set of libraries for ring apps, including stateful sessions.
Clojure
Latest commit 1092659 Apr 8, 2015 @yogthos yogthos bumped up version

README.md

lib-noir

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.

Usage

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
  (middleware/app-handler
    [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

Credits

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.

Maintainers

Contributors

There is a very pretty list of contributors here