Architecture

                    +-------------------+
                    |    Application    |
                    +--------+----------+
                             |
                    +--------v----------+
                    |     nhttp3-h3     |  HTTP/3 frames, headers
                    +--------+----------+
                             |
              +--------------+--------------+
              |              |              |
     +--------v--------+    |    +---------v--------+
     |   nhttp3-qpack  |    |    |    Extensions    |
     |   QPACK codec   |    |    |  Datagram / Prio |
     +-----------------+    |    +------------------+
                             |
                    +--------v----------+
                    |    nhttp3-quic    |  Endpoint, TLS, streams
                    |                   |  loss, congestion, QLOG
                    +--------+----------+
                             |
                    +--------v----------+
                    |    nhttp3-core    |  VarInt, CID, errors
                    +-------------------+

Crate Responsibilities

CrateTestsResponsibility
nhttp3-core19VarInt, ConnectionId, shared error types
nhttp3-quic134Full QUIC transport: packets, frames, TLS, streams, flow control, recovery, endpoint I/O
nhttp3-qpack25QPACK header compression: static/dynamic tables, encoder, decoder
nhttp3-h313HTTP/3 framing, headers, error codes
nhttp3Umbrella re-export
nhttp3-ffi5C ABI: opaque handles, callbacks, runtime
nhttp3-pythonPyO3 bindings, ASGI server, async bridge
nhttp3-wasm3WASM bindings: QPACK, frames, config

Congestion Controllers

AlgorithmBest For
NewReno (default)General purpose, RFC 9002 compliant
CUBICHigh-bandwidth, high-latency networks
BBRBandwidth estimation, loss-tolerant, model-based