## TL;DR

WebAssembly (Wasm) is a portable binary instruction format for stack-based virtual machines, designed as a compilation target for programming languages. Wasm 3.0, completed on September 17, 2025 (announced by Andreas Rossberg of the W3C WebAssembly Community Group), represents the culmination of 6-8 years of specification work, adding 10 major features including 64-bit addressing, garbage collection, exception handling, tail calls, and multiple memories. It is now available in all major browsers and standalone engines like Wasmtime.

## Core Explanation

WebAssembly was originally designed (2015-2017) to run code at near-native speed in web browsers as a complement to JavaScript, supporting languages like C, C++, and Rust. It has since expanded beyond the browser to server-side, edge computing (Cloudflare Workers), blockchain (deterministic smart contracts), and plugin systems.

Wasm 3.0 (2025) transforms it from a relatively constrained compilation target into a general-purpose execution platform capable of hosting managed languages (Java, OCaml, Kotlin) with full garbage collection support.

## Detailed Analysis

### Wasm 3.0 — 10 New Features (September 17, 2025)

| # | Feature | Description |
|:-:|---------|------------|
| 1 | **Memory64** | 64-bit addressing, expanding addressable memory from 4 GB to 16 EB (theoretical). Browsers limit to 16 GB. |
| 2 | **Multiple Memories** | Single modules can declare and directly access multiple memory regions, enabling memory-to-memory copies without host intervention. |
| 3 | **Garbage Collection (GC)** | Runtime-managed heap with struct, array, and tagged integer types. Language-agnostic — no built-in object system. Enables Java, Kotlin, OCaml, Dart compilation. |
| 4 | **Typed References** | Subtyping and recursive types enabling safe indirect function calls (`call_ref`) without runtime type checks. |
| 5 | **Tail Calls** | Function calls that exit the caller immediately, avoiding stack overflow. Supports both static and dynamic tail calls. |
| 6 | **Exception Handling** | Native Wasm exceptions with tags and payloads, eliminating dependence on JavaScript exception mechanisms. |
| 7 | **Relaxed SIMD** | Relaxed variants of Wasm 2.0's vector instructions, trading strict determinism for higher performance. |
| 8 | **Deterministic Profile** | Default deterministic behavior for all non-deterministic operations (NaN generation, relaxed SIMD) — critical for blockchain and reproducible computing. |
| 9 | **Custom Annotation Syntax** | Generic annotation syntax in the text format for embedding custom metadata, analogous to custom sections in the binary format. |
| 10 | **JS String Builtins** | Wasm modules can import functions to manipulate JavaScript string externref values directly, improving JS-Wasm interop. |

### WASI Preview 2 (2024)

WASI (WebAssembly System Interface) standardizes OS-level capabilities (filesystem, networking, clocks) for Wasm outside the browser. WASI Preview 2, stabilized in 2024, introduced the Component Model — a standard for composing multiple Wasm modules with typed interfaces, enabling language-agnostic component reuse.

Combined, Wasm 3.0 + WASI Preview 2 + Component Model position WebAssembly as a "write once, run anywhere" platform competitive with Docker containers, but with stronger sandboxing, smaller footprints, and near-native startup times.

### Adoption

- **Browsers**: Firefox, Chrome, Safari, Edge all ship Wasm 3.0 (September 2025)
- **Standalone**: Wasmtime, Wasmer, WAMR support completing
- **Languages**: Rust, C, C++, Go, Java, Kotlin, OCaml, Dart, Python (via Pyodide), Ruby
- **Production use**: Cloudflare Workers, Shopify Functions, Figma, AutoCAD Web, Adobe Photoshop Web, 1Password
- **Blockchain**: Polkadot, NEAR, Cosmos use Wasm for deterministic smart contracts

## Further Reading

- [Wasm 3.0 Announcement](https://webassembly.org/news/2025-09-17-wasm-3.0/): Official release by Andreas Rossberg
- [Wasi Preview 2](https://github.com/WebAssembly/WASI): System interface standard
- [WebAssembly Feature Status](https://webassembly.org/features/): Engine support tracker