Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Page
Library
Module
Module type
Parameter
Class
Class type
Source
mehari.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122
type 'addr request = 'addr Request.t type response = Response.t type 'a status = 'a Response.status type mime = Mime.t type body = Response.body module Gemtext = Gemtext let paragraph = Gemtext.paragraph let uri = Request.uri let target = Request.target let ip = Request.ip let port = Request.port let sni = Request.sni let query = Request.query let client_cert = Request.client_cert let param = Request.param let response = Response.response let response_body = Response.response_body let response_text = Response.response_text let response_gemtext = Response.response_gemtext let response_raw = Response.response_raw include Response.Status let string = Response.string let gemtext = Response.gemtext let lines = Response.lines let seq = Response.seq let stream = Response.stream let page = Response.page let make_mime = Mime.make_mime let from_filename = Mime.from_filename let from_content = Mime.from_content let no_mime = Mime.no_mime let gemini = Mime.gemini let app_octet_stream = Mime.app_octet_stream let plaintext = Mime.plaintext let text = Mime.text let with_charset = Mime.with_charset module type NET = sig module IO : Types.IO type route type rate_limiter type addr type handler = addr Request.t -> Response.t IO.t type middleware = handler -> handler val no_middleware : middleware val pipeline : middleware list -> middleware val router : route list -> handler val route : ?rate_limit:rate_limiter -> ?mw:middleware -> ?regex:bool -> string -> handler -> route val scope : ?rate_limit:rate_limiter -> ?mw:middleware -> string -> route list -> route val no_route : route val make_rate_limit : ?period:int -> int -> [ `Second | `Minute | `Hour | `Day ] -> rate_limiter val virtual_hosts : ?meth:[ `ByURL | `SNI ] -> (string * handler) list -> handler val set_log_lvl : Logs.level -> unit val logger : handler -> handler val debug : 'a Logs.log val info : 'a Logs.log val warning : 'a Logs.log val error : 'a Logs.log end module type FS = sig module IO : Types.IO type addr type handler = addr Handler.Make(IO).t type dir_path val response_document : ?mime:mime -> dir_path -> response IO.t val static : ?handler:(dir_path -> handler) -> ?dir_listing: (([ `Regular_file | `Directory | `Other ] * string) list -> handler) -> ?index:string -> ?show_hidden:bool -> dir_path -> handler end module Private = struct module type IO = Types.IO module type ADDR = Types.ADDR type response_view = Response.view let view_of_resp = Response.view_of_resp module Cert = struct let get_certs ~exn_msg = function | default :: mult -> `Multiple_default (default, mult) | _ -> invalid_arg exn_msg end module CGI = Cgi module Handler = Handler module Logger_impl = Logger_impl module Protocol = Protocol module Rate_limiter_impl = Rate_limiter_impl module Router_impl = Router_impl module Static = Static end