userland.run70Try the demo
Compare

userland.run compared with other in-browser runtimes

Running code in a browser tab can be done several ways: reimplement Node on browser APIs, compile a new kernel to wasm, or emulate a whole CPU. Each choice trades speed, fidelity, licensing and openness differently. These pages lay out the trade-offs with sources — including where the alternatives are the better fit.

At a glance

A summary of the detailed pages, each of which cites its sources. Last verified: 2026-10-11.

ApproachRuns Node byPrebuilt Linux binariesLicense
userland.runUser-mode RV64GC emulator + host-engine, wasm and Boa runnersReal Node ELF on the emulator, or nodert on the browser's JS engineYes (riscv64)AGPL-3.0 / MPL-2.0, or commercial
WebContainersWasm-based OS with Node on the browser's JS engineBrowser JS engineNoProprietary runtime; commercial license for for-profit production
BrowserPodWasm-native kernel, apps compiled with CheerpBrowser JS engineNot yet (x86 via CheerpX on the roadmap)Proprietary, API key, metered
Sandpack + NodeboxNode-compatible APIs on browser primitivesReimplemented Node APIsNoSandpack Apache-2.0; Nodebox Sustainable Use License
container2wasmFull-system emulation of a container imageWhatever the image contains, emulatedYes (x86_64, riscv64, AArch64)Apache-2.0 (+ bundled components)