---
id: "kb-2026-00017"
title: "WebAssembly (Wasm) 3.0"
schema_type: "TechArticle"
category: "computer-science"
language: "en"
confidence: "high"
confidence_rationale: "Based on the official WebAssembly 3.0 release announcement (September 17, 2025) and the WASI Preview 2 specification"
last_verified: "2026-05-22"
generation_method: "human_only"
ai_models: ["claude-opus"]
derived_from_human_seed: true
primary_sources:
  - title: "Wasm 3.0 Completed"
    authors: ["Rossberg, Andreas"]
    type: "announcement"
    year: 2025
    url: "https://webassembly.org/news/2025-09-17-wasm-3.0/"
    institution: "WebAssembly Community Group (W3C)"
  - title: "WASI Preview 2 — WebAssembly System Interface"
    type: "standard"
    year: 2024
    url: "https://github.com/WebAssembly/WASI"
    institution: "WebAssembly CG"
secondary_sources:
  - title: "WebAssembly Feature Status"
    type: "tracker"
    url: "https://webassembly.org/features/"
completeness: 0.90
related_entities:
  - "entity:javascript"
  - "entity:browser-engines"
ai_citations:
  last_citation_check: "2026-05-22"
---

## 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
