Rust library for Media over QUIC
Go to file
Mike English 48de6a3f5c
Fly.io (#49)
Adds support for deploying the `moq-quinn` relay server to fly.io
2023-09-07 16:02:07 -04:00
.github/workflows Split the web player into it's own repo. 2023-05-24 13:29:18 -07:00
.vscode Add vscode recommendations. 2023-07-10 10:08:00 -07:00
cert Serve the certificate fingerprint over HTTP (#20) 2023-05-24 17:20:44 -07:00
moq-pub moq-pub: Avoid namespace conflict (#66) 2023-09-07 15:59:49 -04:00
moq-quinn Add moq-pub (#54) 2023-08-30 09:32:42 -04:00
moq-transport Remove the incompatible role check. (#58) 2023-08-29 15:30:21 -07:00
moq-warp Add more detailed Debug for MapSource (#56) 2023-08-28 15:14:15 -04:00
.dockerignore Fly.io (#49) 2023-09-07 16:02:07 -04:00
.editorconfig Tabs not spaces u nerds. (#18) 2023-05-23 12:04:27 -07:00
.gitignore Split the web player into it's own repo. 2023-05-24 13:29:18 -07:00
.rustfmt.toml Serve the certificate fingerprint over HTTP (#20) 2023-05-24 17:20:44 -07:00
Cargo.lock moq-pub: Avoid namespace conflict (#66) 2023-09-07 15:59:49 -04:00
Cargo.toml Add moq-pub (#54) 2023-08-30 09:32:42 -04:00
Dockerfile Fly.io (#49) 2023-09-07 16:02:07 -04:00
LICENSE-APACHE Dual license (#40) 2023-07-05 14:55:40 -07:00
LICENSE-MIT Dual license (#40) 2023-07-05 14:55:40 -07:00
README.md Update README.md 2023-08-25 16:36:06 -07:00
entrypoint.sh Fly.io (#49) 2023-09-07 16:02:07 -04:00
fly.toml Fly.io (#49) 2023-09-07 16:02:07 -04:00

README.md

Media over QUIC

Media over QUIC (MoQ) is a live media delivery protocol utilizing QUIC streams. See the MoQ working group for more information.

This repository contains reusable libraries and a relay server. It requires a client to actually publish/view content, such as moq-js.

Join the Discord for updates and discussion.

Setup

Certificates

Unfortunately, QUIC mandates TLS and makes local development difficult. If you have a valid certificate you can use it instead of self-signing.

Use mkcert to generate a self-signed certificate. Unfortunately, this currently requires Go in order to fork the tool.

./cert/generate

Unfortunately, WebTransport in Chrome currently (May 2023) doesn't verify certificates using the root CA. The workaround is to use the serverFingerprints options, which requires the certificate MUST be only valid for at most 14 days. This is also why we're using a fork of mkcert, because it generates certificates valid for years by default. This limitation will be removed once Chrome uses the system CA for WebTransport.

Usage

Run the server:

cargo run

This listens for WebTransport connections on https://localhost:4443 by default. Use a MoQ client to connect to the server.

License

Licensed under either: