1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
//! QUIC v1 (RFC 9000) — transport layer over UDP, secured by TLS 1.3 keys
//! per RFC 9001. Includes RFC 9002 loss recovery + congestion control and
//! RFC 9221 unreliable datagram extension.
//!
//! This module is sans-I/O: the engine takes wire datagrams via `feed`
//! and produces wire datagrams via `pop`. The host wires it to a
//! `UdpSocket`.
//!
//! The [`QuicConnection`] state machine drives the full v1 transport over
//! the sans-I/O feed/pop seam: varint / packet-number / frame codecs and
//! transport parameters, per-direction Initial + Handshake + 1-RTT keys
//! with header protection (RFC 9001 §5), the TLS-QUIC seam (`QuicHooks`),
//! per-level CRYPTO reassembly, ACK emission, RFC 9002 loss recovery with
//! NewReno congestion control, streams with flow control, Retry + address
//! validation, connection-ID rotation, key update, and RFC 9221 unreliable
//! DATAGRAMs, and the RFC 9000 §10.1 idle timeout. Out of scope: 0-RTT
//! emission, connection migration, HTTP/3, and stateless-reset emission.
// QUIC v1 is shipped; the server direction interops with OpenSSL 3.5's QUIC
// client, with several follow-ups still open (see the project notes). A
// number of parsed-but-not-yet-consumed packet/header
// fields, ACK/version-negotiation codec helpers, ECN counters, PnSet query
// methods, and reserved RFC 9000 stream-state variants are intentionally
// retained for that pending work and for protocol-completeness/auditability
// against the RFCs. Rather than scatter per-item `#[allow]`s, dead_code is
// suppressed module-wide here; revisit and tighten once interop work lands.
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub use ;
pub use EcnCodepoint;
pub use QuicServer;
pub use StreamId;
pub use TransportParameters;