Skip to main content

Module draft07

Module draft07 

Source
Expand description

MoQT client implementation for draft-07.

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 draft07 feature.

§Differences from later drafts

  • Request IDs are called subscribe_id, allocated monotonically from 0 (no client/server parity rule).
  • Namespace publication uses ANNOUNCE / UNANNOUNCE (instead of PUBLISH_NAMESPACE which appears in draft-14).
  • There is no standalone PUBLISH flow — publishers announce namespaces and respond to SUBSCRIBE messages.
  • Subgroup object IDs are not delta-encoded, and there are no extension headers. Subgroup/fetch/datagram decoding is stateless.

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-07 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-07).
subscription
Subscription lifecycle state machine.
track_status
Track status lifecycle state machine.