Media over QUIC (MoQ) support
Are you planning to make your MoQ implementation open source?
To clarify, the MoQ capability referenced in https://blog.cloudflare.com/moq/ is currently not based on quiche, so there is no non-public implementation of WebTransport or MoQT. @englishm can probably speak to the specific details of the current deployment
We're big fans of MoQ. The implementation details could change in future but we can't commit to any timeline or prioritization at the time.
@LPardue Thank you for sharing this insight! I guess quinn-rs/quinn was used, and that your implementation builds on englishm/moq-rs. I would like to see WebTransport and MoQ capabilities in quiche eventually.
@birneee I'm adding support now by building web-transport-quiche on top of tokio-quiche. Should take a week.
I actually started moq-rs using quiche but wanted to build an async API and it was too much work.
@kixelated that is great to hear!
I am not too familiar with the tokio-quiche implementation, but I have a bit of a concern that everything gets too tightly coupled with tokio. Tokio is great, but there are other great runtimes.
I have always liked the state-machine aspect of quiche.
In the meantime, I added WebTransport support to non-async quiche (birneee/quiche/webtransport_streams) and used it to implement MoQ quiche_moq.
@kixelated that is great to hear! I am not too familiar with the
tokio-quicheimplementation, but I have a bit of a concern that everything gets too tightly coupled with tokio. Tokio is great, but there are other great runtimes. I have always liked the state-machine aspect of quiche.In the meantime, I added WebTransport support to non-async quiche (birneee/quiche/webtransport_streams) and used it to implement MoQ quiche_moq.
Cool, yeah the problem is that my existing stuff uses Tokio. As you probably know there's a LOT of async in MoQ and decided to make an async API. I'm using web-transport-trait to support MoQ over Quinn, WebSocket, WASM (maybe), and soon Quiche.
IDK it's easier to start with Tokio first and target other runtimes as needs arrive. I'd love to make a sans I/O library similar to quiche at some point... but it's currently a waste of time until there's a performance need for a custom runtime.
Oh and quiche_moq looks pretty cool. I've got draft-14 compatibility if you want to test it against my JS/Rust clients or Rust relay. You should join the Discord if you haven't already: https://moq.dev