refactor(moq-net): drop per-frame compression, restore Publisher Max Latency to TRACK_INFO (lite-05)#1962
Merged
Merged
Conversation
…Latency to TRACK_INFO (lite-05) Sync the moq-lite-05 implementation with the spec, which removed per-frame payload compression (drafts #42, #45) and moved Publisher Max Latency into TRACK_INFO. - Wire lite::TrackInfo drops Compression and adds cache (Publisher Max Latency, ms varint); field order is now priority, ordered, cache, timescale. - Delete the Compression type, TrackInfo::compress / with_compress, and Error::Decompress; strip compress-on-write / decompress-on-read from the lite publisher and subscriber. The model already tracked cache and evicted on it, so restoring Publisher Max Latency is just serialization. - Mirror across hang (catalog no longer requests compression), moq-ffi (MoqTrackInfo drops compress), js/net (delete compression.ts, add cache to the wire and model TrackInfo, block group decoding on timescale), and the py/swift/go wrapper docs. ANNOUNCE_BROADCAST was never compressed in the implementation, so it was already aligned. Expiration stays wall-clock only; the spec's min-of-two timestamp / wall-clock change is left for a follow-up. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
There was a problem hiding this comment.
Sorry @kixelated, you have reached your weekly rate limit of 500000 diff characters.
Please try again later or upgrade to continue using Sourcery
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Syncs the moq-lite-05 implementation with the spec, which removed per-frame payload compression (drafts #42, #45) and, in the same change, moved
Publisher Max LatencyintoTRACK_INFO.Wire change (TRACK_INFO)
Compressionfield.Publisher Max Latency(cache), a milliseconds varint.Publisher Priority, Publisher Ordered, Publisher Max Latency, Timescale.ANNOUNCE_BROADCASTwas never compressed in the implementation, so it was already aligned.Summary
rs/moq-net: deletemodel/compression.rs, theCompressiontype,TrackInfo::compress/with_compress, andError::Decompress; strip the compress-on-write / decompress-on-read paths from the lite publisher and subscriber; drop the now-unusedflate2dependency. The model already trackedcacheand evicted on it, so restoring Publisher Max Latency is just serialization.rs/hang: the catalog track no longer requests compression.rs/moq-ffi:MoqTrackInfodrops thecompressfield (regenerates for the py/swift/kt/go bindings).js/net: deletecompression.ts, addcacheto the wire and modelTrackInfo, and block group decoding ontimescaleinstead of the codec.Expiration stays wall-clock only; the spec's min-of-two timestamp/wall-clock change (#45) is intentionally left for a follow-up.
Breaking changes
Per Branch Targeting, this is a breaking wire + public-API change, so it targets
dev:TRACK_INFOlayout changed (lite-05-wip, still WIP).rs/moq-net: removedCompression,TrackInfo::compress,TrackInfo::with_compress,Error::Decompress;lite::TrackInfofieldcompression->cache.rs/moq-ffi:MoqTrackInfo.compressremoved.js/net: removed theCompressionexport andcompression.ts;TrackInfo.compressremoved,TrackInfo.cacheis now wire-backed.Test plan
cargo test -p moq-net(396) +moq-nativee2e (incl. the lite-05 timestamp roundtrip over the new wire) +hang/moq-fficargo clippy/cargo fmt --check/cargo shear/cargo sortRUSTDOCFLAGS="-D warnings" cargo doc --workspace --all-features --no-deps(CI doc path)just js check+bun test(@moq/net188 tests)(Written by Claude Opus 4.8)