package cohttp-lwt-unix

  1. Overview
  2. Docs

The Server module implements the full UNIX HTTP server interface, including the UNIX-specific functions defined in S.

include Cohttp_lwt.S.Server with module IO = Cohttp_lwt_unix__.Io
module IO : sig ... end
type conn = IO.conn * Cohttp.Connection.t
type response_action = [
  1. | `Expert of Cohttp.Response.t * (IO.ic -> IO.oc -> unit Lwt.t)
  2. | `Response of Cohttp.Response.t * Cohttp_lwt__.Body.t
]
type t
val make_response_action : ?conn_closed:(conn -> unit) -> callback: (conn -> Cohttp.Request.t -> Cohttp_lwt__.Body.t -> response_action Lwt.t) -> unit -> t
val make_expert : ?conn_closed:(conn -> unit) -> callback: (conn -> Cohttp.Request.t -> Cohttp_lwt__.Body.t -> (Cohttp.Response.t * (IO.ic -> IO.oc -> unit Lwt.t)) Lwt.t) -> unit -> t
val make : ?conn_closed:(conn -> unit) -> callback: (conn -> Cohttp.Request.t -> Cohttp_lwt__.Body.t -> (Cohttp.Response.t * Cohttp_lwt__.Body.t) Lwt.t) -> unit -> t
val resolve_local_file : docroot:string -> uri:Uri.t -> string
val respond : ?headers:Cohttp.Header.t -> ?flush:bool -> status:Cohttp.Code.status_code -> body:Cohttp_lwt__.Body.t -> unit -> (Cohttp.Response.t * Cohttp_lwt__.Body.t) Lwt.t
val respond_string : ?flush:bool -> ?headers:Cohttp.Header.t -> status:Cohttp.Code.status_code -> body:string -> unit -> (Cohttp.Response.t * Cohttp_lwt__.Body.t) Lwt.t
val respond_error : ?headers:Cohttp.Header.t -> ?status:Cohttp.Code.status_code -> body:string -> unit -> (Cohttp.Response.t * Cohttp_lwt__.Body.t) Lwt.t
val respond_redirect : ?headers:Cohttp.Header.t -> uri:Uri.t -> unit -> (Cohttp.Response.t * Cohttp_lwt__.Body.t) Lwt.t
val respond_need_auth : ?headers:Cohttp.Header.t -> auth:Cohttp.Auth.challenge -> unit -> (Cohttp.Response.t * Cohttp_lwt__.Body.t) Lwt.t
val respond_not_found : ?uri:Uri.t -> unit -> (Cohttp.Response.t * Cohttp_lwt__.Body.t) Lwt.t
val callback : t -> IO.conn -> IO.ic -> IO.oc -> unit Lwt.t
val resolve_file : docroot:string -> uri:Uri.t -> string
val respond_file : ?headers:Cohttp.Header.t -> fname:string -> unit -> (Cohttp.Response.t * Cohttp_lwt.Body.t) Lwt.t
val create : ?timeout:int -> ?backlog:int -> ?stop:unit Lwt.t -> ?on_exn:(exn -> unit) -> ?ctx:Net.ctx -> ?mode:Conduit_lwt_unix.server -> t -> unit Lwt.t

create ?timeout ?backlog ?stop ?on_exn ?ctx ?mode t is a new HTTP server.

When provided, mode selects the connection type. By default it is using a TCP socket listening on port 8080.

When provided, ctx is the network context to use. By default is Net.default_ctx.

When provided, the stop thread will terminate the server if it ever becomes determined.

When provided, backlog will limit the number of open connections.

Every connection will be served in a new lightweight thread that is invoked via the callback defined in t. If the callback raises an exception, it is passed to on_exn (by default, to a function that logs the exceptiom using the Logs library).

OCaml

Innovation. Community. Security.