Standardized cross-implementation test framework for MOQ protocol interoperability testing.

Overview

The interop runner automates testing between MOQ implementations, publishing results as a matrix showing pass/fail status for each implementation pair.

GitHub: englishm/moq-interop-runner Results: englishm.github.io/moq-interop-runner

Registered Implementations (as of April 2026)

  1. moq-dev-js - moq JavaScript/Hang player (luke-curley)
  2. moq-dev-rs - moq Rust (luke-curley)
  3. moq-rs - moq-rs (draft-14)
  4. moq-rs-draft-16 - Cloudflare moq-rs (draft-16 branch)
  5. moxygen - Meta’s C++ relay
  6. xquic - Alibaba’s XQUIC
  7. imquic - lorenzo-miniero’s C library
  8. libquicr - Cisco’s C++ library
  9. moqtail - TS implementation
  10. quiche-moq - Google’s C++ MoQT (martin-duke, Victor Vasiliev)
  11. moqx - OpenMOQ’s moxygen fork relay (added Apr 2026)

Current Target

The interop runner currently targets draft-16 for automated testing.

Test Results History

PeriodTotal TestsPassFailSkip
April 15, 2026105236814
April 14, 2026105217014
April 13, 2026105207114
April 12, 2026105217014
Early April 20269319-2259-6212
Mid-March 202693-9724-25~6012
Early March 20267118-22variesvaries
February 2026 (draft-14)11-149-102-5varies

The jump from 93 to 105 tests (Apr 12) coincides with moqx joining the matrix, adding new client-relay pairs. Transition from draft-14 to draft-16 target occurred in mid-February 2026, which temporarily reduced pass rates as implementations updated.

Best Performing Pairs

  • moq-rs-draft-16 > moq-rs-draft-16: All tests pass (self-test)
  • moq-dev-js > moqx: 6/6 pass
  • moq-rs-draft-16 > moqx: 5-6/6 pass
  • moq-rs-draft-16 > moxygen: 5-6/6 pass
  • moq-rs-draft-16 > imquic: 5-6/6 pass
  • moq-rs > moq-rs: All tests pass (self-test, draft-14)
  • moq-rs > moqx: All tests pass (draft-14)

Getting Started

To add a new implementation to the runner, see the getting started guide.

Related