ocaml http/1, http/2 and websocket client and server library
1(** HCS - High-performance HTTP library for OCaml 5+.
2
3 Built on Eio for structured concurrency, using h1 for HTTP/1.1 and h2 for
4 HTTP/2 protocol handling.
5
6 The library is designed with runtime abstraction in mind, making future Lwt
7 support possible without major rewrites. *)
8
9module Client = Client
10(** HTTP Client *)
11
12module Server = Server
13(** HTTP Server *)
14
15module Router = Router
16(** Router with radix trie *)
17
18module Plug = Plug
19(** Plug-based middleware system (Phoenix-style) *)
20
21module Pipeline = Pipeline
22(** Reusable plug collections for route scopes *)
23
24module Endpoint = Endpoint
25(** Global plug entry point before routing *)
26
27module Pool = Pool
28(** Connection pool *)
29
30module Tls_config = Tls_config
31(** TLS configuration *)
32
33module Request = Request
34(** Request helpers *)
35
36module Response = Response
37(** Response helpers *)
38
39module H1_client = H1_client
40(** HTTP/1.1 Client *)
41
42module H2_client = H2_client
43(** HTTP/2 Client *)
44
45module H1_server = H1_server
46(** HTTP/1.1 Server (low-level, optimized) *)
47
48module H2_server = H2_server
49(** HTTP/2 Server *)
50
51module Websocket = Websocket
52(** WebSocket support *)
53
54module Sse = Sse
55module Sse_client = Sse_client
56module Event_source = Event_source
57
58module Pubsub = Pubsub
59(** Lock-free topic-based pub/sub messaging *)
60
61module Channel = Channel
62(** WebSocket channel abstraction with topic subscriptions *)
63
64module Codec = Codec
65(** Codec system for serialization/deserialization *)
66
67module Log = Log
68(** Logging system *)
69
70module Stream = Stream
71(** Streaming abstractions *)
72
73module Multipart = Multipart
74(** Multipart form data parsing *)
75
76module Http = Http
77(** HTTP Request builder DSL *)
78
79module Method = H1.Method
80(** Re-exports for convenience *)
81
82module Status = H1.Status
83module Headers = H1.Headers
84
85module Assigns = Assigns
86(** Type-safe assignable values attached to each request. *)