Skip to content

moq-boy

License: MIT

A Rust binary that runs a Game Boy Color emulator, encodes its framebuffer and audio as MoQ tracks, and accepts button input from any number of viewers.

This is the server side of the MoQ Boy demo. See that page for the architecture breakdown — broadcast layout, tracks, auto-pause, etc. The browser-side counterpart is @moq/boy.

Highlights

  • On-demand emulation — the emulator only runs while at least one viewer is subscribed to the video track.
  • Hang container format — video and audio flow through moq-mux so standard hang players can consume them.
  • Raw JSON metadatastatus and command tracks bypass the container and publish JSON directly to moq-lite groups.

Running Locally

bash
just demo boy

This starts a localhost relay, the emulator, and a Vite dev server. A default ROM is downloaded on first run. To load a custom ROM:

bash
just demo boy start path/to/game.gb

See the setup guide for controls, reset behavior, and the authenticated/anonymous prefix split.

Source

rs/moq-boy

Next Steps

  • Read the demo architecture for tracks, broadcast layout, and how discovery works
  • See the @moq/boy package for the browser player
  • See moq-lite for the transport layer and moq-mux for the container format

Licensed under MIT or Apache-2.0