Skip to main content

moqtap_client/draft09/
mod.rs

1//! MoQT client implementation for draft-09.
2//!
3//! Each draft lives in its own top-level module with a complete, independent
4//! implementation: connection, endpoint state machine, event types, observer
5//! trait, and per-flow state machines (subscribe, fetch, announce, track
6//! status). No code is shared across drafts — each draft carries its own copy
7//! because wire-level differences would make a shared layer leaky.
8//!
9//! Enable via the `draft09` feature.
10//!
11//! # Differences from draft-08
12//!
13//! * Object headers on data streams now carry `extension_headers_length`
14//!   (byte count) instead of `extension_count` (item count).
15//! * `Datagram` (stream type 0x01) no longer has `payload_length` or
16//!   `object_status`; payload is the remaining bytes of the datagram.
17//! * `DatagramStatus` (stream type 0x02) gains `extension_headers_length`.
18//! * `filter_type = 1` (NextGroupStart / LatestGroup) is rejected on decode
19//!   in SUBSCRIBE.
20
21/// Outbound MoQT connection with MoQT framing over QUIC.
22pub mod connection;
23/// Unified endpoint state machine orchestrating all MoQT protocol flows.
24pub mod endpoint;
25/// Client event types emitted via the observer.
26pub mod event;
27/// Fetch lifecycle state machine.
28pub mod fetch;
29/// Announce / SubscribeAnnounces state machines.
30pub mod namespace;
31/// Connection observer trait for receiving client events.
32pub mod observer;
33/// Session state, setup validation, and subscribe ID allocation.
34pub mod session;
35/// Subscription lifecycle state machine.
36pub mod subscription;
37/// Track status lifecycle state machine.
38pub mod track_status;