package cohttp-async
Legend:
Library
Module
Module type
Parameter
Class
Class type
Library
Module
Module type
Parameter
Class
Class type
type ('address, 'listening_on) t constraint 'address = [< Async_unix.Socket.Address.t ]
val sexp_of_t :
('address -> Ppx_sexp_conv_lib.Sexp.t) ->
('listening_on -> Ppx_sexp_conv_lib.Sexp.t) ->
('address, 'listening_on) t ->
Ppx_sexp_conv_lib.Sexp.t
val close : (_, _) t -> unit Async_kernel.Deferred.t
val close_finished : (_, _) t -> unit Async_kernel.Deferred.t
val is_closed : (_, _) t -> bool
val listening_on : (_, 'listening_on) t -> 'listening_on
type response = Response.t * Body.t
val sexp_of_response : response -> Ppx_sexp_conv_lib.Sexp.t
type 'r respond_t =
?flush:bool ->
?headers:Cohttp.Header.t ->
?body:Body.t ->
Cohttp.Code.status_code ->
'r Async_kernel.Deferred.t
type response_action = [
| `Expert of Cohttp.Response.t * (Async_unix.Reader.t -> Async_unix.Writer.t -> unit Async_kernel.Deferred.t)
| `Response of response
]
A request handler can respond in two ways:
- Using
`Response
, with aResponse.t
and aBody.t
. - Using
`Expert
, with aResponse.t
and an IO function that is expected to write the response body. The IO function has access to the underlyingAsync_unix.Reader.t
andAsync_unix.Writer.t
, which allows writing a response body more efficiently, stream a response or to switch protocols entirely (e.g. websockets). Processing of pipelined requests continue after theunitAsync_kernel.Deferred.t
is resolved. The connection can be closed by closing theAsync_unix.Reader.t
.
val resolve_local_file : docroot:string -> uri:Uri.t -> string
Resolve a URI and a docroot into a concrete local filename.
val respond_with_pipe :
?flush:bool ->
?headers:Cohttp.Header.t ->
?code:Cohttp.Code.status_code ->
string Async_kernel.Pipe.Reader.t ->
response Async_kernel.Deferred.t
Respond with a string
Pipe that provides the response string Pipe.Reader.t.
val respond_string :
?flush:bool ->
?headers:Cohttp.Header.t ->
?status:Cohttp.Code.status_code ->
string ->
response Async_kernel.Deferred.t
val respond_with_redirect :
?headers:Cohttp.Header.t ->
Uri.t ->
response Async_kernel.Deferred.t
Respond with a redirect to an absolute uri
val respond_with_file :
?flush:bool ->
?headers:Cohttp.Header.t ->
?error_body:string ->
string ->
response Async_kernel.Deferred.t
Respond with file contents, and error_string Pipe.Async_unix.Reader.t
if the file isn't found
type mode = Conduit_async.server
val create_expert :
?max_connections:int ->
?backlog:int ->
?buffer_age_limit:Async_unix.Writer.buffer_age_limit ->
?mode:mode ->
on_handler_error:[ `Call of 'address -> exn -> unit | `Ignore | `Raise ] ->
('address, 'listening_on) Async_extra.Tcp.Where_to_listen.t ->
(body:Body.t ->
'address ->
Request.t ->
response_action Async_kernel.Deferred.t) ->
('address, 'listening_on) t Async_kernel.Deferred.t
Build a HTTP server and expose the IO.ic
and IO.oc
s, based on the Tcp.Server
interface.
val create :
?max_connections:int ->
?backlog:int ->
?buffer_age_limit:Async_unix.Writer.buffer_age_limit ->
?mode:Conduit_async.server ->
on_handler_error:[ `Call of 'address -> exn -> unit | `Ignore | `Raise ] ->
('address, 'listening_on) Async_extra.Tcp.Where_to_listen.t ->
(body:Body.t -> 'address -> Request.t -> response Async_kernel.Deferred.t) ->
('address, 'listening_on) t Async_kernel.Deferred.t
Build a HTTP server, based on the Tcp.Server
interface
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>