A binary instruction format enabling near-native performance in web browsers

WebAssembly (commonly abbreviated Wasm) is a binary instruction format that runs in a stack-based virtual machine. It was designed to be a portable compilation target for programming languages, enabling deployment of client and server applications on the web at speeds close to native machine code. Unlike JavaScript, which is a dynamically typed scripting language parsed and interpreted (or JIT-compiled) at runtime, Wasm is distributed as compact, pre-compiled bytecode that browsers can decode and execute very quickly.
Wasm emerged from earlier browser-based performance projects, most notably asm.js, a heavily optimized subset of JavaScript developed by Mozilla. Recognizing the limits of squeezing performance out of JavaScript syntax, engineers from Mozilla, Google, Microsoft, and Apple collaborated starting around 2015 to design a purpose-built bytecode format. The first stable version, Wasm 1.0, shipped in major browsers in 2017, and the format became an official W3C recommendation in December 2019 — making it, alongside HTML, CSS, and JavaScript, the fourth language to run natively in web browsers.
.wasm binaries using toolchains such as Emscripten or the Rust wasm32 target.Because early Wasm lacked a standard way to interact with files, networking, or other system resources outside the browser, the WASI (WebAssembly System Interface) was developed to give Wasm modules secure, standardized access to host capabilities in non-browser environments, expanding its use into cloud and embedded contexts.
WebAssembly's core promise — near-native performance with strong security guarantees, in any Wasm-compatible runtime — has made it a foundational technology for performance-sensitive web applications and an increasingly important piece of cloud-native and edge infrastructure.