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+.
memory64 is not supported. The big allocation will fail with WebAssembly compile/validate error. Needs Chrome 133+ (behind a flag in earlier versions).
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
});