Documentation

Hale.WarpQUIC.Network.Wai.Handler.WarpQUIC

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 server response header.

  • beforeMainLoop : IO Unit

    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
    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
        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
            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.
                Instances For