commit | 5ccc379791baf78d5189898929aea9f34f588b21 | [log] [tgz] |
---|---|---|
author | martinduke <martinduke@google.com> | Wed Nov 27 11:12:55 2024 -0800 |
committer | Copybara-Service <copybara-worker@google.com> | Wed Nov 27 11:13:59 2024 -0800 |
tree | 2067f676d4c27f7186984db7c9464e74468d9dcc | |
parent | 2c39aebe93b5da6e01f332f0e3e92bb217f11c12 [diff] |
Refactor MoQT Upstream SUBSCRIBE processing and data structures. Streamline and simplify in preparation for also sending FETCH. - Move subscribe-specific properties to SubscribeRemoteTrack, derived from RemoteTrack. - A map of subscribes by track_alias_. Also, a separate map of pointers to those records indexed by subscribe_id_. pointers to FetchTask will also be stored in the latter. - Eliminate "active subscribes" and just put the state into SubscribeRemoteTrack, since we are now indexing all subscribe by ID. - Allow access to the stream type in the parser to verify it's correct for the subscription. - Based on @vasilvv suggestion, deleted a check in quiche_weak_ptr.h that was misfiring. - Added support for Upstream UNSUBSCRIBE to avoid a problem with ChatClient not clearing subscription state. Not in production. PiperOrigin-RevId: 700756286
QUICHE stands for QUIC, Http, Etc. It is Google‘s production-ready implementation of QUIC, HTTP/2, HTTP/3, and related protocols and tools. It powers Google’s servers, Chromium, Envoy, and other projects. It is actively developed and maintained.
There are two public QUICHE repositories. Either one may be used by embedders, as they are automatically kept in sync:
To embed QUICHE in your project, platform APIs need to be implemented and build files need to be created. Note that it is on the QUICHE team's roadmap to include default implementation for all platform APIs and to open-source build files. In the meanwhile, take a look at open source embedders like Chromium and Envoy to get started:
To contribute to QUICHE, follow instructions at CONTRIBUTING.md.
QUICHE is only supported on little-endian platforms.