All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- an admission-only library surface available with
default-features = false; the existing relay runtime and binary remain enabled by default - hierarchical process, authenticated-principal, and resolved-scope capacity for namespace, track, subscription, track-status, and FETCH request lifecycles
- scoped and bounded upstream relay caches with supervised tasks, aggregate diagnostics, and idle eviction
- configurable per-namespace track caches plus bounded API/file coordinator retention
- process-shared transport request capacity with configurable per-session/process retained-byte budgets and metrics
- server-generated admission session IDs plus atomic decision-and-lease admission for replay-safe token backends
- lease-owned asynchronous revalidation and bounded, awaited session close with fixed close reasons, metrics, and fail-closed error reporting
- graceful relay draining that stops accepts and finalizes every admitted session before releasing capacity
- supervised late-admission and finalization reaping across client deadlines, task cancellation, and panic unwinds
- a distinct raw-QUIC token-subscriber listener policy requiring SETUP authorization, subscribe-only claims, and the draft-19 ALPN
- relay overloads now use retryable
EXCESSIVE_LOADresponses; authenticated identity and resolved scope remain attached to long-lived handlers - file coordination uses versioned binary-safe tuple/scope keys and migrates legacy UTF-8 entries on the next write
- production token listeners now require atomic admission, bounded leases, and awaited lifecycle close capabilities
- production mTLS publisher listeners accept raw QUIC, browser token subscriber listeners accept WebTransport, and native token subscriber listeners accept raw QUIC; mismatched substrates, protocols, and missing SETUP authorization are rejected before external admission state changes
0.7.18 - 2026-05-20
- tokio utils use default features
- suggestions from opencode reviewers
- apply suggestions from opencode review
- check for cancelled of cancellation token when waiting for subscribe open
- keep the comments for readability purpose
- Merge branch 'main' of github.com:itzmanish/moq-rs into feat/remote-manager-rewrite
0.7.17 - 2026-04-13
- always register in coordinator after registering in local
- Merge branch 'main' of github.com:itzmanish/moq-rs into fix-register-order-namespace
0.7.16 - 2026-04-10
- cross-platform dual-stack binding for IPv6 sockets
- Merge pull request #151 from englishm-cloudflare/me/ipv6-dual-stack-binding
0.7.15 - 2026-04-09
- include destination address in upstream connection cache key
0.7.14 - 2026-03-31
- Make repo REUSE v3.3 compliant
- Bring copyright notices, license docs up to date
0.7.13 - 2026-03-27
- actively reject unauthorized control messages on permission-gated sessions
- add scope-aware namespace isolation to ApiCoordinator
- add Coordinator stubs for SUBSCRIBE_NAMESPACE, track PUBLISH, and lingering subscriber support
- add resolve_scope() to Coordinator trait with permission-gated sessions
- add scope parameter to Coordinator trait and thread through relay
- add Transport enum and connection path extraction
0.7.12 - 2026-02-18
- update Cargo.toml dependencies
0.7.11 - 2026-02-18
- add additional debug logging for troubleshooting
- add structured fields to high-value log messages
- (metrics) add describe_metrics() for Prometheus HELP text
- (metrics) distinguish graceful close from connection errors
- (moq-relay-ietf) add optional prometheus exporter for metrics validation
- (moq-relay-ietf) add metrics instrumentation via metrics crate facade
- cargo fmt and clippy lints
- (metrics) move upstream_connections gauge after successful connect
- (metrics) address review feedback for metrics instrumentation
- migrate from log crate to tracing
- (metrics) make metrics always-on, remove feature gate
0.7.10 - 2026-01-29
- fix unnecessary_unwrap clippy lint
0.7.9 - 2025-12-19
- use socket address from coordinator if available to connect
- bypass DNS lookup on relay URL
- better comment for url in NamespaceOrigin
0.7.8 - 2025-12-18
- update Cargo.lock dependencies
0.7.7 - 2025-12-18
- add file-based coordinator and rewrote remote for handling remote streams
- ci
- linter
- seperate RemoteManager rewrite to different PR
- remove once_cell to pass the test
- clippy unused imports
- clippy warnings
- race and proper task shutdown
- if host is IpAddr construct socket addr else resolve dns
- update lookup signature to return owned Client instead of reference
- prevent file truncation when opening for read/write in FileCoordinator
- add lifetime parameter to lookup method signature for proper borrow checking
- return clients on lookup for coordinator and misc fix
- Merge pull request #118 from itzmanish/feat/multi-relay
- remove track registration from coordinator interface and file implementation
- clarify coordinator file usage in CLI help text and add FIXME for unregister_namespace
- restructure relay into lib/bin and add coordinator interface
0.7.6 - 2025-12-18
- Use correlation IDs in errors
- cargo fmt
- Add support for nested namespaces
- Revert "Add support for namespace hierachies"
- Address PR feedback
- cargo fmt
- Add support for namespace hierachies
- Wire Up Track Status Handling
- moq-relay-ietf variable renames and comments added
- Update moq-relay-ietf/src/relay.rs
- Print CID for clock sessions
- Add --mlog-serve
- Refactor mlog feature for better layering
- First pass of 'mlog' support
- Allow either CID or CID_server.qlog paths
- Add --qlog-serve
- Wire qlog_dir CLI argument through moq-relay-ietf
- Add --qlog-dir CLI argument to QUIC configuration
0.7.5 - 2025-09-15
- cargo fmt
- Start updating control messaging to draft-13 level
0.7.4 - 2025-02-24
- updated the following local packages: moq-transport
0.7.3 - 2025-01-16
- cargo fmt
- Change type of namespace to tuple
0.7.2 - 2024-10-31
- updated the following local packages: moq-transport
0.7.1 - 2024-10-31
- release
0.7.0 - 2024-10-23
- Update repository URLs for all crates
- Rename crate
0.6.1 - 2024-10-01
- update Cargo.lock dependencies
0.5.1 - 2024-07-24
- update Cargo.lock dependencies