Skip to main content

Crate moq_room

Crate moq_room 

Source
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 .hang catalog-format suffix from a path segment.
parse
Split a room-relative broadcast path into identity and kind.