Expand description
Headless multi-participant rooms over MoQ.
A room is a path prefix. There is no service and no storage: joining is minting a moq-token rooted at that prefix (the LiveKit AccessToken analogue) and dialing the relay.
Participants are discovered from the announce stream. Identity is the path
before camera / screen. Each participant publishes:
{identity}/camera.hang: camera + microphone{identity}/screen.hang: screenshare; its announce/unannounce is the share lifecycle
This is the native counterpart of @moq/room,
extracted from hang.live’s roster and iroh-live’s announce-bus redesign of
iroh-rooms. Gossip discovery, tickets, and 1:1 Call stay in iroh-live.
Capture and encode stay in moq-video / moq-audio.
Modules§
- chat
- Chat over an uncompressed JSON window on
chat, retaining ten seconds of messages. Sender identity comes from the broadcast, not the payload.
Structs§
- Event
- One (un)announce of a participant broadcast.
- Parsed
- An announced path split into identity and kind.
- Room
- Runs the announce loop and yields remote participant broadcasts.
Enums§
- Error
- Errors constructing or consuming a room participant.
- Kind
- The two broadcasts each participant may publish.
Functions§
- broadcast_
path - The broadcast path a participant publishes for
kind. - claims
- Token claims for a participant in
room. - kind_
from_ segment - Strip an optional
.hangcatalog-format suffix from a path segment. - parse
- Split a room-relative broadcast path into identity and kind.