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 123 124 125 126 127
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 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 type clock 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 : clock -> ?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 : clock -> 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 module type PCLOCK = Types.PCLOCK 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