moq_relay_ietf/lib.rs
1//! MoQ Relay library for building Media over QUIC relay servers.
2//!
3//! This crate provides the core relay functionality that can be embedded
4//! into other applications. The relay handles:
5//!
6//! - Accepting QUIC connections from publishers and subscribers
7//! - Routing media between local and remote endpoints
8//! - Coordinating namespace/track registration across relay clusters
9//!
10//! # Example
11//!
12//! ```rust,ignore
13//! use std::sync::Arc;
14//! use moq_relay_ietf::{Relay, RelayConfig, FileCoordinator};
15//!
16//! // Create a coordinator (FileCoordinator for multi-relay deployments)
17//! let coordinator = FileCoordinator::new("/path/to/coordination/file", "https://relay.example.com");
18//!
19//! // Configure and create the relay
20//! let relay = Relay::new(RelayConfig {
21//! bind: "[::]:443".parse().unwrap(),
22//! tls: tls_config,
23//! coordinator,
24//! // ... other options
25//! })?;
26//!
27//! // Run the relay
28//! relay.run().await?;
29//! ```
30
31mod api;
32mod consumer;
33mod coordinator;
34mod local;
35pub mod metrics;
36mod producer;
37mod relay;
38mod remote;
39mod session;
40mod web;
41
42pub use api::*;
43pub use consumer::*;
44pub use coordinator::*;
45pub use local::*;
46pub use producer::*;
47pub use relay::*;
48pub use remote::*;
49pub use session::*;
50pub use web::*;