1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//! HLS / LL-HLS <-> MoQ gateway.
//!
//! Bridges HLS (and Low-Latency HLS) and [`moq_net`] broadcasts in both
//! directions, mirroring the WHIP/WHEP split in `moq-rtc`:
//!
//! - [`import`] pulls a remote HLS master/media playlist and publishes its CMAF
//! segments into MoQ (an HTTP *client* that *publishes*).
//! - [`server`] serves HLS playlists, DASH manifests, and CMAF segments over
//! HTTP for MoQ broadcasts (an HTTP *server*). It subscribes only to each
//! broadcast's catalog and timeline tracks; media bytes are FETCHed from
//! the relay one group at a time, only when a segment is actually requested.
//! It serves every request; gate access by layering your own middleware onto
//! [`Server::router`](server::Server::router).
//!
//! All CMAF byte handling (import via [`moq_mux::container::fmp4::Import`],
//! export via [`moq_mux::container::fmp4::Muxer`]) lives in `moq-mux`; this
//! crate owns the HLS playlist and DASH manifest generation, the
//! timeline-driven playlist window, and the HTTP surface.
pub use status_retryable;
pub use *;
pub use Server;
/// Re-export of the HTTP stack behind the export server, so consumers can name the
/// types that surface through [`Server::router`] (and layer their own middleware on
/// it) without adding their own axum dependency and risking a version mismatch.
/// `axum::http` covers the `http` crate types too. A major axum bump is therefore a
/// breaking change for this crate.
pub use axum;