A tiny clone of ruby's Rack protocol in OCaml. Which is slightly more general and inspired by Finagle. It's not imperative to have this to for such a tiny framework but it makes extensions a lot more straightforward

module Service : sig ... end

A service is simply a function that returns its result asynchronously

module Filter : sig ... end

A filter is a higher order function that transforms a service into another service.

module Request : sig ... end
module Response : sig ... end
module Handler : sig ... end

A handler is a rock specific service

module Middleware : sig ... end

Middleware is a named, simple filter, that only works on rock requests/response

module App : sig ... end