SYSTEM Cited by 1 source
Emscripten¶
Emscripten is a compiler toolchain that translates C and C++ source code into WebAssembly (plus JavaScript glue) runnable in browsers. It is the standard way to take a large native codebase and make it browser-shippable without rewriting in TypeScript / JavaScript.
Open-source, hosted at github.com/emscripten-core/emscripten.
What it provides¶
- Wasm output from C/C++ source (via LLVM backend).
- JS glue that sets up the Wasm module, marshals data across the JS↔Wasm boundary, and proxies browser-API calls.
- POSIX shims — a subset of POSIX APIs emulated over browser equivalents (filesystem, timers, sockets).
- Bindings for browser APIs — including (until recently) a
built-in WebGPU binding layer that let C++ WebGPU calls
transparently land on the browser's WebGPU API. This built-in
layer is now deprecated in favor of Dawn's
emdawnwebgpubindings.
Why it matters¶
- Teams with mature C++ codebases (graphics engines, CAD kernels, physics engines, audio engines, emulators) can ship them to the browser without a ground-up rewrite.
- Combined with browser APIs like WebGPU and WebAssembly SIMD, this closes much of the historical gap between web and native performance for compute-heavy workloads.
Seen in¶
- sources/2026-04-21-figma-rendering-powered-by-webgpu —
Figma's C++ renderer is compiled to Wasm via Emscripten for
the browser client, with custom C++/JS bindings written in
cases where the built-in bindings weren't performant enough.
The same C++ code is also compiled natively (x64/arm64) for
server-side rendering, yielding a one-codebase / two-target
story. In-flight migration from Emscripten's deprecated built-in
WebGPU bindings to Dawn's
emdawnwebgpu.