moqtap_codec/lib.rs
1#![deny(missing_docs)]
2
3//! MoQT wire codec for
4//! [draft-07](https://www.ietf.org/archive/id/draft-ietf-moq-transport-07.html) through
5//! [draft-17](https://www.ietf.org/archive/id/draft-ietf-moq-transport-17.html).
6//!
7//! Enable draft support via feature flags: `draft14` (default), `draft07`, `draft08`, etc.
8//! Use `all-drafts` to enable every draft.
9//!
10//! # Shared modules
11//!
12//! - [`varint`] — QUIC variable-length integer (RFC 9000 Section 16)
13//! - [`kvp`] — Key-value parameter pairs used in control messages
14//! - [`types`] — Core protocol types (TrackNamespace, Location, enums)
15//! - [`error`] — Codec error types and size limits
16//!
17//! # Draft-specific modules
18//!
19//! Each `draftNN` module provides control message and data stream encoding/decoding
20//! for that specific draft version. Enable via the corresponding feature flag.
21
22/// Unified types and version-aware decode/encode across drafts.
23///
24/// The `Any*` wrapper enums contain one variant per enabled draft feature.
25/// Enable multiple draft features (e.g. `draft07` + `draft14`) for runtime
26/// dispatch between drafts.
27pub mod dispatch;
28
29/// MoQT wire codec for draft-07.
30#[cfg(feature = "draft07")]
31pub mod draft07;
32/// MoQT wire codec for draft-08.
33#[cfg(feature = "draft08")]
34pub mod draft08;
35/// MoQT wire codec for draft-09.
36#[cfg(feature = "draft09")]
37pub mod draft09;
38/// MoQT wire codec for draft-10.
39#[cfg(feature = "draft10")]
40pub mod draft10;
41/// MoQT wire codec for draft-11.
42#[cfg(feature = "draft11")]
43pub mod draft11;
44/// MoQT wire codec for draft-12.
45#[cfg(feature = "draft12")]
46pub mod draft12;
47/// MoQT wire codec for draft-13.
48#[cfg(feature = "draft13")]
49pub mod draft13;
50/// MoQT wire codec for draft-14.
51#[cfg(feature = "draft14")]
52pub mod draft14;
53/// MoQT wire codec for draft-15.
54#[cfg(feature = "draft15")]
55pub mod draft15;
56/// MoQT wire codec for draft-16.
57#[cfg(feature = "draft16")]
58pub mod draft16;
59/// MoQT wire codec for draft-17.
60#[cfg(feature = "draft17")]
61pub mod draft17;
62
63/// Codec error types and size limits.
64pub mod error;
65/// Key-value parameter pair encoding and decoding.
66pub mod kvp;
67/// Core protocol types shared across drafts.
68pub mod types;
69/// QUIC variable-length integer encoding and decoding.
70pub mod varint;
71/// MoQT draft version enum for runtime dispatch.
72pub mod version;