Skip to main content

Crate h3_util

Crate h3_util 

Source
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:

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:

FeatureBackendModuleSupport
quinnQuinnquinnproduction
msquicMsQuicmsquicexperimental
s2n-quics2n-quics2nexperimental
quichequichequiche_h3experimental

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§

client
client_body
executor
server
server_body

Traits§

StdError
Error is a trait representing the basic expectations for error values, i.e., values of type E in Result<T, E>.

Type Aliases§

Error