Language: JavaScript/TypeScript Organization: video-dev Maintainer: Mike English (@englishm), community GitHub: video-dev/moq-js Slack: moq-js (C09BZ7KH0BZ) Discord: video-dev Discord
Overview
IETF-aligned JavaScript/browser implementation of MoQ Transport, enabling browser-based publishing and subscribing via WebTransport. Client-side only — requires a MoQ relay such as moq-rs for operation.
History
Created 2024-10-15, the same day as moq-rs (cloudflare/moq-rs). Both were born out of the period when luke-curley was not going to support the IETF WG specs in his original kixelated/moq-js. The video-dev version started from Luke’s codebase but diverged to follow the IETF MoQ working group specifications. Luke’s original kixelated/moq-js was archived in June 2025 and its functionality was absorbed into moq-dev as the Hang player (a total rewrite).
Much of the post-fork development came from the Montevideo Tech Summer Camp 2025 “MoQ Player Implementation” project, with Mike English as technical sponsor and contributors from the Qualabs community. The repo was moved from englishm/moq-js to video-dev/moq-js to reflect its status as a community project. The 2026 Summer Camp continued MoQ work with both Mike English and Luke Curley as co-technical sponsors, this time focused on moq-dev/moq.
The two JS projects are now separate implementations — video-dev/moq-js follows IETF WG specs, while moq-dev/moq’s JS packages implement Luke’s moq-lite/Hang protocol.
Draft Support
- Main branch: draft-14 (IETF WG spec)
- PR #64: draft-14 implementation with publisher and player (merged 2026-02-17)
Use Cases
- Browser-based media publishing
- Browser-based media consumption
- Provides
<video-moq>web component andPlayerclass for custom UIs
Top Contributors
kixelated (historical), englishm, JoaquinBCh, itzmanish, Manuel-Barrabino
Related
- moq-rs - IETF-aligned Rust companion (cloudflare/moq-rs)
- moq-dev - Luke Curley’s project with Hang player (moq-dev/moq, different JS codebase)
- interop-runner - Testing framework