Portable Lwt implementation of HTTP client and server, without depending on a particular I/O implementation. The various
Make functors must be instantiated by an implementation that provides a concrete IO monad.
module type IO = sig ... end
The IO module is specialized for the
module type Net = sig ... end
Net module type defines how to connect to a remote node and close the resulting channels to clean up.
module type Client = sig ... end
Client module implements non-pipelined single HTTP client calls. Each call will open a separate
Net connection. For best results, the
Body that is returned should be consumed in order to close the file descriptor in a timely fashion. It will still be finalized by a GC hook if it is not used up, but this can take some additional time to happen.
module type Server = sig ... end
Server module implements a pipelined HTTP/1.1 server.