Expand description
MoQT client implementation for draft-13.
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 draft13 feature.
§Differences from draft-12
Draft-13 renames and restructures a few message types:
SubscribeAnnounces/SubscribeAnnouncesOk/SubscribeAnnouncesError/UnsubscribeAnnouncesare renamed toSubscribeNamespace/SubscribeNamespaceOk/SubscribeNamespaceError/UnsubscribeNamespace(same wire IDs 0x11-0x14).TrackStatusRequest(0x0D) becomesTrackStatus: a subscribe-like request carryingsubscriber_priority,group_order,forward, andfilter_type.TrackStatus(0x0E) becomesTrackStatusOk: a subscribe_ok-like response carryingtrack_alias,expires,group_order,content_exists, and an optionallargest_location.- New
TrackStatusError(0x0F):request_id+error_code+reason_phrase.
The version varint is 0xff000000 + 13.
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-12 MoQT connection.
- fetch
- Fetch lifecycle state machine.
- namespace
- Announce / SubscribeNamespace state machines.
- observer
- Connection observer trait for receiving client events. Connection observer trait for receiving structured events.
- session
- Session state, setup validation, and request ID allocation. MoQT session lifecycle management (draft-12).
- subscription
- Subscription lifecycle state machine.
- track_
status - Track status lifecycle state machine.