The crate README says which draft is implemented, the readings taken where
-22 leaves an encoding open, the carriage code points and the WAI_RECEIPT
layout, what is not implemented yet, and the vector corpus's JSON view.
The version moves to 0.3.0 because the public API changed; both lockfiles
that record it follow.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
tests/draft22_roundtrip.rs: a seeded generator builds valid control
messages of every type, subgroup and fetch streams in both Group Orders,
datagrams and WAI_RECEIPT values; encode, decode, encode is the identity.
The encodings and the corpus, mutated, are fed to every decoder, whole and
incrementally; none may panic.
joule-code-conformance runs the independent decoder over the corpus.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
tests/vectors/draft-22/moqt22_check.py, standard library only, written from
the draft's sections: it reads every good vector as the corpus states and
refuses every negative one with the stated kind and consequence, and fails
on an empty corpus.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
tests/vectors/draft-22/vectors.json: varints, every control message type,
control, subgroup, fetch and padding streams, datagrams, and the
WAI_RECEIPT property's value, each with its stated reading; and negative
vectors (cut short, a varint past its frame, unknown types, repeated
parameters, lengths past the draft's limits, flags it forbids, delta and
ID overflows), each with the refusal and consequence it must meet.
tests/draft22_vectors.rs generates it and holds the crate to it, whole and
fed in pieces to the incremental decoder.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
- messages: the control plane is -22's; ObjectHeader stays draft-neutral, and
a layer cap is an OBJECT_PROPERTY_FILTER on the MRL_LAYER property.
- carriage: the crate's objects ride -22 subgroup objects, their receipt,
the WAI_RECEIPT property (moq-streaming-format §5) and the MRL fields in
Immutable Properties at application-range code points; a group's receipts
ride its receipts track (§4.1).
- session: the draft by ALPN, SETUP options, the JWP extension declared by a
Setup Option, Request IDs per end.
- mock: objects, receipt bundles and requests cross the -22 codec; the relay
reads an object's delivery timeout from its OBJECT_DELIVERY_TIMEOUT property.
- transport_quic: ALPN moqt-22, a pair of unidirectional control streams,
a request stream per request, subgroup and fetch streams, datagrams.
- wire: MOQT's integer is the -22 varint; every u64 encodes.
- MOQT_DRAFT_VERSION is 0xff000016.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
The codec of -22 as a module of its own (draft22), chosen by a Draft enum
whose ALPN is moqt-22: the leading-ones varint of §8.1, Key-Value-Pairs,
Properties and Setup Options, the Authorization Token, every control
message of Table 5 with its parameters, request IDs and stream rules, and
the data plane (subgroup streams, datagrams, fetch streams, padding).
Decoders are bounded and refuse with a typed error carrying the draft's
consequence. The crate does not use it yet.
Co-Authored-By: Claude Opus 5.5 <[email protected]>