2.5 KiB
2.5 KiB
every.channel
A global, disaggregated mesh of relays that turns local ATSC antennas into a coherent, worldwide stream. The stack is Rust-first, MoQ-native, and designed for deterministic chunking so identical broadcasts yield identical data.
Goals
- Free, global access to broadcast TV through user-run relays.
- Deterministic encoding and chunking to make availability a coordination problem.
- Clean layering: capture -> transcode -> MoQ publish -> relay -> client playback.
- Cross-platform clients: Tauri app, CLI, and a static web UI.
Repository layout
crates/ec-core: shared types and determinism profiles.crates/ec-hdhomerun: HDHomeRun discovery and lineup scaffolding.crates/ec-linux-iptv: Linux DVB ingest scaffolding.crates/ec-iroh: iroh transport scaffolding.crates/ec-crypto: stream key derivation helpers.crates/ec-ts: MPEG-TS timing and table parsing.crates/ec-chopper: deterministic ffmpeg chunking scaffolding.crates/ec-moq: MoQ data model and relay scaffolding.crates/ec-node: node runner (ingest + publish).crates/ec-cli: CLI for discovery and node control.apps/tauri: desktop client shell.apps/tauri/ui: Dioxus web frontend embedded in the Tauri app.docs/USAGE.md: runbook for viewer and ingest pipelines.docs/IROH_EXAMPLES.md: summary of iroh repos/examples used for design.docs/: architecture, roadmap, and MoQ notes.
Development
Nix:
nix develop
Rust:
cargo build
Runbook:
cat docs/USAGE.md
WebTransport Watch (MoQ)
Publish (node -> Cloudflare relay):
cargo run -p ec-node -- wt-publish \
--url https://cdn.moq.dev/anon \
--name la-nbc \
--input http://<hdhr-host>/auto/v4.1
Watch (web):
https://every.channel/watch?url=https%3A%2F%2Fcdn.moq.dev%2Fanon&name=la-nbc
Coverage:
./scripts/coverage.sh
Build static web:
./scripts/build-web.sh
Deploy to Cloudflare Workers (static site):
./scripts/deploy-workers.sh
Remote website E2E (local publisher -> deployed every.channel web):
./scripts/e2e-remote-website-direct.sh
Remote website E2E (public list/signaling -> website selects stream automatically):
./scripts/e2e-remote-website-directory.sh
Tauri viewer (Dioxus + Trunk):
cd apps/tauri/ui
trunk serve --port 1420 --public-url /
cd ../
cargo run
Status
This repository is intentionally minimal. It captures the initial architecture and scaffold for a MoQ-first network and will expand as proposals are accepted.