A WebAssembly desktop, written in pure-Go Ruby.
wasmdesk is a desktop environment that runs entirely in your browser. Its
window manager and clients are written in pure Ruby and run on
go-embedded-ruby — a pure-Go (CGO=0) Ruby
interpreter — compiled to js/wasm. There is no server-side code: the compositor
owns the canvas, the stacking order and input routing, and external clients each
run in their own Web Worker and paint into a SharedArrayBuffer.
| Repo | What it is |
|---|---|
| wasmbox | the compositor + Openbox-style window manager — pure Ruby, //go:embed-ed into one self-contained .wasm, with a SharedArrayBuffer external-client protocol and a live browser demo |
| wasmdock | a macOS-style dock — a standalone wasmbox external client (Web Worker + SAB) with hover magnification and click-to-launch |
- Compositor (wasmbox). A Wayland-inspired single-instance compositor with an
Openbox-style window-manager policy: stacking order, click-to-focus, cascade
placement, decorations and a
requestAnimationFramerender loop — all pure Ruby. - External clients. Step-B clients run as separate Web Worker / WASM instances
and speak a documented
postMessage+SharedArrayBufferprotocol; the dock is the reference external client. - Pure Ruby on WASM. Everything builds on
go-embedded-ruby: a single static
.wasm, no runtime fetch, no C toolchain, full Ruby dynamism.
Every repository is BSD-3-Clause.
