package yurt

  1. Overview
  2. Docs
include Cohttp_lwt.S.Server with module IO = Cohttp_lwt_unix_io
module IO = Cohttp_lwt_unix_io
type conn = IO.conn * Cohttp.Connection.t
type 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

Resolve a URI and a docroot into a concrete local filename.

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

respond ?headers ?flush ~status ~body will respond to an HTTP request with the given status code and response body. If flush is true, then every response chunk will be flushed to the network rather than being buffered. flush is true by default. The transfer encoding will be detected from the body value and set to chunked encoding if it cannot be determined immediately. You can override the encoding by supplying an appropriate Content-length or Transfer-encoding in the headers parameter.

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:Request_ctx.Header.t -> fname:string -> unit -> (Request_ctx.Response.t * Request_ctx.Body.t) Lwt.t
type server = {
  1. host : string;
  2. port : int;
  3. mutable routes : (string * Route.route * Request_ctx.endpoint) list;
  4. mutable tls_config : Conduit_lwt_unix.server_tls_config option;
  5. mutable logger : Lwt_log.logger;
}
val server : ?tls_config:Conduit_lwt_unix.server_tls_config -> ?logger:Lwt_log.logger -> string -> int -> server
val log_debug : server -> string -> string -> unit
val log_info : server -> string -> string -> unit
val log_notice : server -> string -> string -> unit
val log_error : server -> string -> string -> unit
val log_fatal : server -> string -> string -> unit
val configure_tls : ?password:[ `Password of bool -> string | `No_password ] -> server -> string -> string -> server
val respond_stream : body:string Lwt_stream.t -> ?headers:Request_ctx.Header.t -> ?flush:bool -> status:Request_ctx.status_code -> unit -> (Request_ctx.Response.t * Cohttp_lwt_body.t) Lwt.t
val respond_json : body:Ezjsonm.t -> ?flush:bool -> ?headers:Request_ctx.Header.t -> status:Request_ctx.status_code -> unit -> (Request_ctx.Response.t * Cohttp_lwt_body.t) Lwt.t
val respond_html : body:Yurt_html.t -> ?flush:bool -> ?headers:Request_ctx.Header.t -> status:Request_ctx.status_code -> unit -> (Request_ctx.Response.t * Cohttp_lwt_body.t) Lwt.t
val redirect : string -> ?headers:Request_ctx.Header.t -> unit -> (Request_ctx.Response.t * Cohttp_lwt_body.t) Lwt.t
val register : server -> (string * Route.route * Request_ctx.endpoint) list -> server
val register_route : server -> string -> Route.route -> Request_ctx.endpoint -> server
val register_route_string : server -> string -> string -> Request_ctx.endpoint -> server
val options : string -> Request_ctx.endpoint -> server -> server
val get : string -> Request_ctx.endpoint -> server -> server
val post : string -> Request_ctx.endpoint -> server -> server
val put : string -> Request_ctx.endpoint -> server -> server
val update : string -> Request_ctx.endpoint -> server -> server
val delete : string -> Request_ctx.endpoint -> server -> server
val static : string -> string -> server -> server
val file : string -> string -> server -> server
val daemonize : ?directory:string -> ?syslog:bool -> server -> unit
exception Cannot_start_server
val start : server -> unit Lwt.t
val run : ?fn:(server -> unit Lwt.t) -> server -> unit
val (>|) : server -> (server -> server) -> server
val (>||) : server -> (server -> unit) -> server