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
| Crate | Tests | Responsibility |
nhttp3-core | 19 | VarInt, ConnectionId, shared error types |
nhttp3-quic | 134 | Full QUIC transport: packets, frames, TLS, streams, flow control, recovery, endpoint I/O |
nhttp3-qpack | 25 | QPACK header compression: static/dynamic tables, encoder, decoder |
nhttp3-h3 | 13 | HTTP/3 framing, headers, error codes |
nhttp3 | — | Umbrella re-export |
nhttp3-ffi | 5 | C ABI: opaque handles, callbacks, runtime |
nhttp3-python | — | PyO3 bindings, ASGI server, async bridge |
nhttp3-wasm | 3 | WASM bindings: QPACK, frames, config |
Congestion Controllers
| Algorithm | Best For |
| NewReno (default) | General purpose, RFC 9002 compliant |
| CUBIC | High-bandwidth, high-latency networks |
| BBR | Bandwidth estimation, loss-tolerant, model-based |