Skip to main content

Crate simoom_h3

Crate simoom_h3 

Source
Expand description

Sans-io HTTP/3 (RFC 9114) for simoom, on top of simoom_quic::Connection streams.

Http3 owns the HTTP/3 state of one QUIC connection: the control and QPACK streams, SETTINGS, GOAWAY, and the frame parser of every request stream. Feed it the QUIC events of its connection with Http3::handle, then drain Http3::poll_event. A server answers H3Event::Headers with Http3::send_headers and Http3::send_body; body sending reports how much was accepted, so a slow client pushes back on the handler.

The same type acts as a client (Http3::send_request), used by the tests.

Modules§

code
HTTP/3 error codes (RFC 9114 §8.1).

Structs§

Config
Field
One field line: a name and a value.
H3Error
A connection-level HTTP/3 error; the connection is closed with this code.
Http3
Settings
The settings simoom understands; others are ignored.
Validated
Facts learned while validating a header section.

Enums§

H3Event
SendError
Errors of the per-request API.

Functions§

pseudo
Returns the value of a pseudo-header or field.
validate_request
Request header validation: pseudo-headers first, no duplicates, the required ones present (CONNECT has only :method and :authority; extended CONNECT adds :protocol, :scheme and :path).
validate_response
Response header validation: exactly one three-digit :status, no other pseudo-header.
validate_trailers
Trailers carry no pseudo-headers.