A set of utilities and helpers for building ring apps.
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
lib-noir now uses scrypt as its crypto implementation. This breaks compatibility with the existing password hashes encrypted using bcrypt.
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)}))
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