QuickBEAM is a JavaScript runtime for the BEAM (Erlang VM) that integrates JS runtimes as GenServers within OTP supervision trees. JS runtimes can call Elixir handlers, send/receive messages to BEAM processes, monitor processes, and use distributed node RPC. It ships with browser and Node.js API compatibility backed by native BEAM primitives (e.g., fetch via :httpc, WebSocket via :gun, localStorage via ETS), a native DOM via lexbor, and a built-in TypeScript toolchain powered by OXC Rust NIFs — no Node.js required. A context pool model supports thousands of concurrent lightweight JS contexts sharing a small thread pool, with per-context memory and reduction limits. Performance benchmarks show 2.5–4.1x speedup over QuickJSEx. Use cases include SSR, LiveView per-connection JS state, sandboxed user code execution, and AI agent orchestration.

12m read timeFrom github.com
Post cover image
Table of contents
InstallationQuick startBEAM integrationSupervisionContext PoolAPI surfacesNode.js compatibilityResource limitsIntrospectionDOMWeb APIsData conversionTypeScriptTypeScript toolchainnpm packagesPerformanceWhen to use whatDevelopmentExamplesLicense
1 Comment

Sort: