4 phút đọc
moq-dev/moq: Media over QUIC: Real-time latency at massive scale – Repository moq-dev/moq. Mô tả: Media over QUIC: Real-time latency at massive scale. 1569 stars, 262 forks, ngôn ngữ chính Rust, cập nhật 2026-10-17.
1. Repository làm gì?
Media over QUIC (MoQ) is a next-generation live media protocol that provides real-time latency at massive scale. Built using modern web technologies, MoQ delivers WebRTC-like latency without the constraints of WebRTC. The core networking is delegated to a QUIC library but the rest is in application-space, giving you full control over your media pipeline.
Note: This project implements moq-lite, a forwards-compatible subset of the IETF moq-transport draft. moq-lite works with any moq-transport CDN (ex. Cloudflare). The focus is narrower, prioritizing simplicity and deployability.
Full documentation lives at doc.moq.dev.
The quickest way to see it in action (requires Nix with flakes):
Then visit https://localhost:8080. Don't have Nix? See the demo guide for manual setup.
MoQ is designed as a layered protocol stack.
2. Dữ liệu và cấu trúc đáng chú ý
Rule 1: The CDN MUST NOT know anything about your application, media codecs, or even the available tracks. Everything could be fully E2EE and the CDN wouldn't care. No business logic allowed.
Instead, moq-relay operates on rules encoded in the moq-net header. These rules are based on video encoding but are generic enough to be used for any live data. The goal is to keep the server as dumb as possible while supporting a wide range of use-cases.
The media logic is split into another protocol called hang. It's pretty simple and only intended to be used by clients or media servers. If you want to do something more custom, then you can always extend it or replace it entirely.
Think of hang as like HLS/DASH, while moq-lite is like HTTP.
This repository provides both Rust and TypeScript libraries with similar APIs but language-specific optimizations.
The release branch is stable and is what gets published; main is the trunk where breaking API changes land between releases. Every package follows semver: a breaking API change bumps the first nonzero version number (1.2.0 to 2.0.0, 0.3.1 to 0.4.0, 0.0.5 to 0.0.6). Breaking wire changes are extremely rare.
Contributions are welcome, including AI-assisted issues, pull requests, reviews, and comments. See CONTRIBUTING.md for the attribution policy and guidance on when to open an issue before writing code.
3. Khả năng ứng dụng và giới hạn
CI runs check as two parallel jobs, just ci check and just ci test, so it covers the same ground as your local run. It sets two things you don't: MOQ_STRICT=1, which turns a missing tool into an error instead of a skipped check, and NEXTEST_PROFILE=ci, which allows a longer hang timeout.
See the development guide and the justfile for more.
Exception: the OBS plugin under cpp/obs/ is licensed under GPL-2.0-or-later (see cpp/obs/LICENSE), because it links OBS Studio's libobs, which is GPL-2.0. This is a separately-distributable work; per GPLv2 its presence in this repository is mere aggregation and does not affect the MIT/Apache licensing of the rest of the project. moq-c and the other moq crates remain MIT/Apache.
Số liệu repository có thể thay đổi; nên mở liên kết nguồn để kiểm tra README, giấy phép và trạng thái phát hành.
Nguồn tham khảo: Xem bài gốc