Expand description
MoQT client implementation for draft-08.
Each draft lives in its own top-level module with a complete, independent implementation: connection, endpoint state machine, event types, observer trait, and per-flow state machines (subscribe, fetch, announce, track status). No code is shared across drafts — each draft carries its own copy because wire-level differences would make a shared layer leaky.
Enable via the draft08 feature.
§Differences from draft-07
SubscribesBlocked(type 0x1A) is a new control message.SubscribeAbsoluteRange filter dropsend_object; onlyend_group.SubscribeUpdatedropsend_object.SubscribeDoneis restructured: it now carriesstream_countinstead of the conditionalfinal_group/final_objectpair.Fetchhas two modes (Standalone = 1, Joining = 2). Joining mode takesjoining_subscribe_id+preceding_group_offset.FetchOkalways includeslargest_group_idandlargest_object_id.- Subgroup / datagram / fetch object headers carry
extension_count+ opaque extension bytes. - New
DatagramStatusstream type (0x02) for status-only datagrams. ObjectStatusvalue 4 is nowEndOfTrackAndGroup, and value 5 is a newEndOfTrack(track ends but current group does not).
Modules§
- connection
- Outbound MoQT connection with MoQT framing over QUIC.
- endpoint
- Unified endpoint state machine orchestrating all MoQT protocol flows.
- event
- Client event types emitted via the observer. Client event types emitted by a draft-08 MoQT connection.
- fetch
- Fetch lifecycle state machine.
- namespace
- Announce / SubscribeAnnounces state machines.
- observer
- Connection observer trait for receiving client events. Connection observer trait for receiving structured events.
- session
- Session state, setup validation, and subscribe ID allocation. MoQT session lifecycle management (draft-08).
- subscription
- Subscription lifecycle state machine.
- track_
status - Track status lifecycle state machine.