# ECP-0009: MoQ implementation selection

Status: Draft

## Problem

We need a practical MoQ implementation to begin integration with iroh while the protocol evolves.

## Survey (Rust implementations)

- **moq-dev/moq**: MoQ reference repository with Rust crates including `moq-lite`, `moq-relay`, and `hang` catalogs.
  - https://github.com/moq-dev/moq
- **cloudflare/moq-rs**: Rust implementation of the IETF MoQ Transport draft.
  - https://github.com/cloudflare/moq-rs

## Decision

Start with `moq-lite` (from moq-dev/moq) and reuse the adapters proven by `iroh-live`:

- `web-transport-iroh` for WebTransport-style bindings over iroh.
- `iroh-moq` for creating MoQ sessions over iroh connections.

Track `cloudflare/moq-rs` in parallel for standards-aligned MoQ Transport and schedule
interoperability tests once we have live relays.

## Alternatives considered

- Building a fresh MoQ stack: rejected due to duplication and slow iteration.
- Waiting for browser-native MoQ: rejected because it delays core network validation.
- Starting directly on cloudflare/moq-rs: deferred until we need draft-accurate transport.

## Rollout / teardown

- Vendor or depend on `moq-rs` crates.
- Implement a minimal publish/subscribe pipeline over iroh.
- Re-evaluate once MoQ standardization and browser support stabilize.
