Roves
Getting Started

What is Roves?

Roves in one page — what it is, and what it isn't.

Edit on GitHub

Three ways to use Roves

Pick whichever fits how you already work — all three end up building the exact same engine/bundle underneath, so nothing here locks you in.

What Roves changes, on top of upstream Servo

  • No browser chrome. No toolbar, no tabs, no address bar, no page-reload/back-forward shortcuts — this is meant to look and behave like a native app window, not a browser.
  • A single executable. mach bundle produces one binary (play.exe / play.app / play) with your game's content either packed in or sitting next to it — no separate launcher process, no bundled roves-content-packer binary.
  • A branded boot splash, shown immediately and held up through both packed-content extraction and your page's own initial load, instead of a blank, undefined-content, or black window while either is still working.
  • A roves: protocol bridge (see roves-api) exposing window/process lifecycle, Steam, and cache-clearing to your page's own JS — no Tauri-style invoke() runtime, no window.__TAURI_INTERNALS__ equivalent required.
  • Optional Steam integration, gated behind --features steam, degrading to harmless defaults when Steam isn't running or wasn't compiled in.

Every one of these is documented — file touched, what changed, why — in CUSTOMIZATIONS.md, with a matching, machine-applicable patch under patches/. Anything not listed there is stock Servo behavior — check servo.org for that.

On this page