/lib-noir

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

Primary LanguageClojureEclipse Public License 1.0EPL-1.0

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 jBcrypt

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

"Leiningen version"

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