Expand description
HTTP/3 server and client utilities used by tonic-h3 and axum-h3.
This crate abstracts QUIC transports behind two traits so that the same HTTP/3 server and client code can run over any supported backend:
client::H3Connector— establishes client-side QUIC connections.server::H3Acceptor— accepts server-side QUIC connections.
On the client side, client::H3Channel wraps an client::H3Connector
into a tower::Service/tonic-compatible channel that transparently
(re)connects when the underlying HTTP/3 driver ends.
§Backends
Each backend is gated behind a cargo feature and exposes its own
H3Connector/H3Acceptor implementations:
| Feature | Backend | Module | Support |
|---|---|---|---|
quinn | Quinn | quinn | production |
msquic | MsQuic | msquic | experimental |
s2n-quic | s2n-quic | s2n | experimental |
quiche | quiche | quiche_h3 | experimental |
No backend is enabled by default; enable the one you need, e.g.
features = ["quinn"].
Only the quinn backend is supported for production use. The msquic,
s2n-quic, and quiche backends are experimental and provided for
evaluation only. They have known limitations — for example, they do not
release the listening UDP socket promptly on server shutdown.
Modules§
Traits§
- StdError
Erroris a trait representing the basic expectations for error values, i.e., values of typeEinResult<T, E>.