Rust!
Native code is written in Rust and is available at kixelated/moq-rs. It’s split into a few crates:
crate | description |
---|---|
moq-transport | A library that mostly implements the MoqTransport draft… with a few strong opinions. |
moq-relay | A MoQ server that connects publishers to subscribers, caching any duplicate subscriptions. |
moq-pub | A MoQ client that integrates with ffmpeg to publish fMP4. |
moq-clock | It’s a clock! Just to demonstate that MoqTransport can do more than media. |
webtransport-quinn | A WebTransport client and server utilizing Quinn. |
Check out the open issues for a rough road map and potential contributions!
Web
Web code is written in Typescript and is available at kixelated/moq-js. It’s split into a few folders:
folder | description |
---|---|
transport | Mostly implements MoQ Transport draft… with same said strong opinions. |
contribute | Captures media, encodes via WebCodecs, and transmits over WebTransport. |
playback | Receives media over WebTransport, decodes via WebCodecs, and renders via OffscreenCanvas and WebWorklet. |
It’s also available on NPM as @kixelated/moq. This project is using a lot of new web APIs so expect issues.
License
Everything is licensed under MIT or Apache-2.0 so knock yourself out.
If you do end up using MoQ for your project, let the world know! The more public traction we can get, the better we can make the standard.