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.
Table of contents
InstallationQuick startBEAM integrationSupervisionContext PoolAPI surfacesNode.js compatibilityResource limitsIntrospectionDOMWeb APIsData conversionTypeScriptTypeScript toolchainnpm packagesPerformanceWhen to use whatDevelopmentExamplesLicense1 Comment
Sort: