Wasm definition
WebAssembly (Wasm) is a compact binary instruction format that runs in web browsers at near-native speed, alongside JavaScript. Code written in languages such as C, C++, Rust or Go is compiled to Wasm, letting performance-heavy software like video editors, games and CAD tools run in the browser. Wasm also runs outside browsers on servers and edge platforms.
How does WebAssembly work?
Developers compile code from another language into a .wasm module: Rust through wasm-pack, C and C++ through Emscripten, C# through Blazor, or TypeScript-like code through AssemblyScript. The browser downloads the module, validates it and compiles it to machine code quickly. JavaScript loads and calls the module, and the module can call back into JavaScript. WebAssembly became a W3C recommendation in 2019 and runs in all major browsers.
Wasm runs in the same sandbox as JavaScript, with its own linear memory and no direct access to the operating system. It also has no direct access to the page's DOM, so interface updates go through JavaScript. That makes Wasm best at heavy computation, while JavaScript continues to manage the user interface around it.
Examples of WebAssembly in use
- Figma uses compiled C++ to render complex design files smoothly in the browser.
- Adobe Photoshop and AutoCAD offer web versions built on WebAssembly.
- ffmpeg.wasm converts and edits video entirely on the user's device.
- SQLite compiled to Wasm runs a real database inside the browser.
- Unity and Unreal can export games to the web.
- Google Earth runs its 3D globe in the browser using WebAssembly.
- Emulators run classic games and operating systems inside a browser tab.
- ONNX Runtime Web and TensorFlow.js use Wasm backends for AI inference in the browser.
WebAssembly vs JavaScript
Wasm is not a replacement for JavaScript. For compute-heavy work such as image processing, compression, physics or cryptography, it delivers predictable speed close to native code. For typical interface logic and DOM updates, modern JavaScript engines are already fast, and calling across the boundary adds overhead. Wasm modules can also be large to download. Most real products use JavaScript for the app and Wasm for a few hot paths.
Another major benefit is reuse. Companies with mature libraries in C++ or Rust, such as codecs, CAD kernels or simulation engines, can bring them to the browser instead of rewriting them in JavaScript, keeping one implementation across desktop, mobile and web.
WebAssembly outside the browser
The WebAssembly System Interface (WASI) lets Wasm modules run on servers with controlled access to files, networks and clocks. Runtimes such as Wasmtime, Wasmer and WasmEdge execute them, and edge platforms such as Cloudflare Workers and Fastly Compute support Wasm workloads. Startup takes milliseconds and each module is strongly sandboxed, which suits plugins, serverless functions and running untrusted code safely inside proxies and databases.
When to use WebAssembly
Choose Wasm when the browser must do heavy computation, when you want to reuse an existing native library, or when you need safe, fast-starting sandboxes on the server. Skip it for ordinary forms, dashboards and content sites, where it adds build and debugging complexity without a visible gain. Nexzem uses WebAssembly selectively, for example to run document processing or image analysis on the user's device so sensitive files never leave it. Profile first to confirm the bottleneck really is computation.