QUIC-based feed ingest & backhaul — replacing SRT
1. Create a namespace and set passwords at /admin
2. Generate TLS certs for the receiver (self-signed is fine for testing):
openssl req -x509 -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 \
-keyout key.pem -out cert.pem -days 365 -nodes \
-subj "/CN=quicfeed"
3. Start the receiver:
cargo run --bin quicfeed-rx -- \
--namespace youtube-nfl-001 \
--password YOUR_RX_PASSWORD \
--listen-addr 0.0.0.0:4443 \
--cert cert.pem \
--key key.pem
4. Start the transmitter:
cargo run --bin quicfeed-tx -- \
--namespace youtube-nfl-001 \
--password YOUR_TX_PASSWORD \
--rx-addr 127.0.0.1:4443
YOUR_TX_PASSWORD and YOUR_RX_PASSWORD with the passwords you set in the admin panel. Each namespace has separate tx and rx passwords.
Both tx and rx authenticate with this worker before establishing a direct QUIC connection. The tx acquires a namespace lock (only one tx per namespace at a time), then connects to the rx over QUIC using quinn. The rx listens for incoming connections and accepts bidirectional streams.
quicfeed-tx (transmitter):
--namespace Feed namespace (e.g. "youtube-nfl-001")
--password TX password for this namespace
--rx-addr Receiver address (host:port)
--worker-url Auth endpoint (default: https://quicfeed.net)
quicfeed-rx (receiver):
--namespace Feed namespace (e.g. "youtube-nfl-001")
--password RX password for this namespace
--listen-addr Listen address (default: 0.0.0.0:4443)
--cert Path to TLS certificate (PEM)
--key Path to TLS private key (PEM)
--worker-url Auth endpoint (default: https://quicfeed.net)