Settings for the WarpQUIC server. $$\text{Settings} = \{ \text{port} : \text{UInt16},\; \text{certFile} : \text{String},\; \ldots \}$$
- port : UInt16
Port to listen on. Default: 443 (HTTPS).
- host : String
Host to bind to. Default: all interfaces.
- certFile : String
Path to TLS certificate file. Required for QUIC.
- keyFile : String
Path to TLS private key file. Required for QUIC.
- maxConcurrentStreams : Nat
Maximum concurrent HTTP/3 request streams per connection. Default: 100.
- qpackMaxTableCapacity : Nat
QPACK maximum dynamic table capacity. Default: 4096.
- qpackBlockedStreams : Nat
QPACK maximum blocked streams. Default: 100.
- serverName : String
Server name for the
serverresponse header. Called just before the server starts its accept loop.
Instances For
Default settings (requires cert and key paths). $$\text{defaultSettings}(c, k) = \text{Settings}\{ \text{certFile} := c,\; \text{keyFile} := k \}$$
Equations
- Network.Wai.Handler.WarpQUIC.defaultSettings certFile keyFile = { certFile := certFile, keyFile := keyFile }
Instances For
Build a QUIC ServerConfig from WarpQUIC Settings.
$$\text{toQUICConfig} : \text{Settings} \to \text{ServerConfig}$$
Equations
- One or more equations did not get rendered due to their size.
Instances For
Build HTTP/3 settings from WarpQUIC settings. $$\text{toH3Settings} : \text{Settings} \to \text{H3Settings}$$
Equations
- Network.Wai.Handler.WarpQUIC.toH3Settings settings = { qpackMaxTableCapacity := settings.qpackMaxTableCapacity, qpackBlockedStreams := settings.qpackBlockedStreams }
Instances For
Convert an HTTP/3 request to a simplified WAI-compatible representation.
In a full implementation, this would build a Network.Wai.Request.
$$\text{h3RequestToHeaders} : \text{H3Request} \to \text{List}(\text{String} \times \text{String})$$
Equations
Instances For
Handle a single QUIC connection by processing HTTP/3 streams.
$$\text{handleConnection} : \text{Settings} \to \text{Connection} \to \text{IO}(\text{Unit})$$
Currently delegates to HTTP3.handleConnection.
Equations
- Network.Wai.Handler.WarpQUIC.handleConnection settings conn handler = Network.HTTP3.handleConnection conn (Network.Wai.Handler.WarpQUIC.toH3Settings settings) handler
Instances For
Run a WAI-like application over HTTP/3 / QUIC. $$\text{runH3} : \text{Settings} \to \text{H3Handler} \to \text{IO}(\text{Unit})$$ This is the main entry point for the WarpQUIC server. Creates a QUIC server and dispatches HTTP/3 requests to the handler.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Run a QUIC server with a custom QUIC config and an HTTP/3 handler. $$\text{runQUIC} : \text{ServerConfig} \to \text{H3Handler} \to \text{IO}(\text{Unit})$$
Equations
- One or more equations did not get rendered due to their size.