open-standards/joule-code/joule-code-rs/crates/joule-moq-relay/Cargo.toml
Transaction Science f4a880b48e joule-moq: docs and CI for three drafts; CHANGELOGs
The -18 table gains a requester's FIN on namespace requests, the -16 notes the
Request IDs admitted across streams; the relay README states how it ends a
publisher's tracks and treats a closed control stream; -14 is listed as not
implemented. The conformance workflow runs the -18 and -16 independent
decoders beside -22's. Crate docs and descriptions name the three drafts.
joule-code and wai CHANGELOG entries.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-21 12:50:35 -04:00

45 lines
2 KiB
TOML

[package]
name = "joule-moq-relay"
version = "0.1.0"
description = "A MOQT relay for draft-ietf-moq-transport-22 (and -18 and -16, bridged): native QUIC and WebTransport over HTTP/3 on one UDP port, a WebSocket fallback, priority-ordered fan-out with per-subscriber delivery timeouts, and every object's receipts forwarded whether the object was delivered or dropped."
edition = "2024"
rust-version = "1.97"
license = "Apache-2.0"
repository = "https://github.com/transaction-science/open-standards"
[lib]
path = "src/lib.rs"
[[bin]]
name = "joule-moq-relay"
path = "src/main.rs"
[dependencies]
# `secure-objects` for its Key ID reader alone: the DVR store keeps nothing of a room whose
# objects are sealed (dvr.rs), and the relay never opens one.
joule-moq = { path = "../joule-moq", features = ["secure-objects"] }
quinn = "0.11"
rustls = { version = "0.23", default-features = false, features = ["ring", "std"] }
ring = "0.17"
# WebTransport over HTTP/3 (MIT OR Apache-2.0). Its `quinn` feature lets one quinn
# endpoint serve both the native MOQT ALPN and `h3`.
wtransport = { version = "0.7.2", default-features = false, features = ["ring", "self-signed", "quinn"] }
tokio-tungstenite = "0.29"
tokio = { version = "1", features = ["rt-multi-thread", "macros", "sync", "time", "net", "io-util", "signal"] }
bytes = "1"
futures = "0.3"
async-trait = "0.1"
tracing = "0.1"
tracing-subscriber = "0.3"
serde = { version = "1", features = ["derive"] }
serde_json = { version = "1", features = ["raw_value"] }
toml = "0.9"
ed25519-dalek = { version = "2", features = ["rand_core"] }
rand_core_06 = { package = "rand_core", version = "0.6", features = ["getrandom"] }
blake3 = "1"
hex = "0.4"
base64 = "0.22"
thiserror = "2"
[dev-dependencies]
tokio = { version = "1", features = ["rt-multi-thread", "macros"] }