What it is and the problem it solves
WebAssembly is a portable binary and text format standard for executable programs and software interfaces. It solves the problem of running performance-sensitive, cross-language code safely and efficiently—first in browsers, then beyond.
How it works
WebAssembly defines a portable binary code format and a corresponding text format. It runs on a portable virtual stack machine. It uses structured control flow, linear memory, and module-based foreign function interfaces.
What works
C and C++ compilation to WebAssembly works reliably in all major browsers. The MVP delivers predictable, sandboxed execution with linear memory isolation. It supports non-web use, including server-side and edge runtimes.
What does not
The MVP does not support garbage collection, multithreading, or high-level language abstractions. These arrived only in later versions. Wasm 2.0 and 3.0 add them incrementally—but adoption lags behind specification.
What it changes
It changes how compiled code executes across environments: from JavaScript-only to language-agnostic, sandboxed, near-native speed. It shifts runtime responsibility from host engines (e.g., V8) to a standardised VM layer.
Is it worth your time
Yes—if you compile C/C++ for the web or deploy compute in constrained non-web environments. No—if you rely on garbage-collected languages without waiting for Wasm 3.0 features or if your toolchain lacks stable support for threading or SIMD.