demo · v133

The 4 GB ceiling, broken

memory64 removes the 4 GB linear-memory ceiling that bit every Wasm application doing image processing, ML inference, or in-browser databases. Try to allocate a memory bigger than 65,536 pages (4 GB / 64 KB) and watch it succeed on Chrome 133+.

32-bit max requested
memory64 allocated
allocation time (ms)

what 64-bit memory unlocks

WebAssembly originally used 32-bit pointers, capping linear memory at 4 GiB. For ML model weights, panoramic images, or column-store query buffers, that's a hard wall in the browser. memory64 widens the index type to 64-bit. The Wasm binary opts in via a flag on the (memory) declaration; the JS host sees a WebAssembly.Memory({ index: "i64", initial: ... }). The runtime cost is small — bounds-check overhead grows slightly — and it's gated per-module so 32-bit modules pay nothing.

// 64-bit memory from JS
const mem = new WebAssembly.Memory({
  initial: 80000,            // 80000 × 64 KiB = 5 GiB
  maximum: 131072,           // 8 GiB
  index: "i64",              // <-- new in Chrome 133
});

see also