Skip to content

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 emdawnwebgpu bindings.

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.
Last updated · 200 distilled / 1,178 read