WASM 3 Released With 64-bit Address Space Support
Written by Kay Ewbank   
Monday, 22 September 2025

Web Assembly (WASM) 3 has been released with a number of improvements, including support for 64-bit address space; the ability to use multiple memory objects from a single module; and a garbage collector.  

WASM is a low-level intermediate language that can be processed by the JavaScript engine alongside JavaScript. It is designed to be portable and to run at near-native speeds to support the creation of high-performance applications on the web. The advantage of WASM is that it is a much lower level representation of the program than the equivalent JavaScript. This makes it possible for the engine to run the code much faster than the more sophisticated and expressive JavaScript. 

webasslogo

The support for 64-bit address spaces mean that memories and tables can now be declared to use i64 as their address type instead of just i32. This expands the available address space of Wasm applications from 4 gigabytes to (theoretically) 16 exabytes, to the extent that physical hardware allows. 

The ability to use multiple memory objects, and hence multiple address spaces, simultaneously was until now only possible by declaring and accessing each of them in separate modules. In the new version, a single module can now declare multiple memories and directly access them, including directly copying data between them. This means tools such as wasm-merge will work for all Wasm modules. 

The new garbage collector underpins support for a new and separate form of storage that is automatically managed by the Wasm runtime. This is limited, but means a compiler targeting Wasm can declare the memory layout of its runtime data structures in terms of struct and array types, plus unboxed tagged integers, whose allocation and lifetime is then handled by Wasm. 

Other improvements include the ability to use typed references that describe the exact shape of the referenced heap value, avoiding additional runtime checks that would otherwise be needed to ensure safety. This more expressive typing mechanism, including subtyping and type recursion, is also available for function references.

Native exception handling has also been added. Exceptions are defined by declaring exception tags with associated payload data, and an exception can be thrown, and selectively be caught by a surrounding handler, based on its tag. 

In addition to these core features, embeddings of Wasm into JavaScript benefit from a new extension to the JS API, specifically JS string builtins. JavaScript string values could already be passed to Wasm as externrefs. Functions from this new primitive library can be imported into a Wasm module to directly access and manipulate such external string values inside Wasm.

WASM 3 is available for use now.

webasslogo

More Information

WebAssembly On GitHub

Related Articles

Microsoft Announces Hyperlight Wasm

Run WebAssembly Components Inside Node.js With Jco

Wasmer's py2wasm Compiles Python To WebAssembly

WCGI Is WebAssembly + Old School CGI

WebAssembly Is Ready For Use

To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.

Banner


Google Androidify Lets You Turn Yourself Into The Android Bot
12/09/2025

Google has introduced Androidify, an app that can be used to build your own Android bot on the web or in an app on Google Play. AI does most of the work - all you need to do is upload a selfie, o [ ... ]



Oracle Database Adds MCP Tooling Support
02/09/2025

Oracle adds MCP support to two of its flagship tools, SQLcl and
SQL Developer for VS Code, in an attempt to simplify user interaction with the database.


More News

pico book

 

Comments




or email your comment to: comments@i-programmer.info

Last Updated ( Monday, 22 September 2025 )