







Memory in WebAssembly is one of the topics that creates confusion for newcomers, particularly for those with experience in languages with memory management features like garbage collection, such as JavaScript, Go, or Java. In this article we explore using memory in WebAssembly in various scenarios - passing JavaScript arrays to Rust and AssemblyScript modules, checking for some basic memory leaks using Valgrind, or exchanging strings between runtimes and modules using Wasmtime.
A Compiler Author’s Guide to WebAssembly GC by Oscar Spencer @ Wasm I/O 2025
A Tale of Three WebAssembly Runtimes
Walking through the implementation of three different WebAssembly runtimes from scratch

Rust - The WebAssembly Component Model
Rust has first-class support for WebAssembly core and WebAssembly components via the available targets in the toolchain:
WebAssembly
WebAssembly (abbreviated Wasm) is a binary instruction format for a stack-based virtual machine. Wasm is designed as a portable compilation target for programming languages, enabling deployment on the web for client and server applications.
Instructions — WebAssembly 3.0 (2026-06-03)
WebAssembly computation is performed by executing individual instructions.
extism/extism
The framework for building with WebAssembly (wasm). Easily & securely load wasm modules, move data, call functions, and build extensible apps.
extism/extism
The framework for building with WebAssembly (wasm). Easily & securely load wasm modules, move data, call functions, and build extensible apps.
Why is WebAssembly a second-class language on the web? – Mozilla Hacks - the Web developer blog
This post is an expanded version of a presentation I gave at the recent WebAssembly CG meeting in Munich. WebAssembly has come a long way since its first release in 2017. The 1.0 version of WebAssembly was already a great fit for low-level languages like C and C++, and immediately enabled many new kinds of applications to efficiently target the web.

Wasm 2.0 Completed - WebAssembly
WebAssembly (abbreviated Wasm) is a binary instruction format for a stack-based virtual machine. Wasm is designed as a portable compilation target for programming languages, enabling deployment on the web for client and server applications.
Wasm 3.0 Completed - WebAssembly
WebAssembly (abbreviated Wasm) is a binary instruction format for a stack-based virtual machine. Wasm is designed as a portable compilation target for programming languages, enabling deployment on the web for client and server applications.
kyju.org
Horribly misusing Rust features to provide provable memory safety and tracing garbage collection for pointer soup.
Making Rust Workers reliable: panic and abort recovery in wasm‑bindgen
Panics in Rust Workers were historically fatal, poisoning the entire instance. By collaborating upstream on the wasm‑bindgen project, Rust Workers now support resilient critical error recovery, including panic unwinding using WebAssembly Exception Handling.

WebAssembly and its platform targets
When talking about WebAssembly, one of the things that often confuses people is the lack of a great analogy for the various platform targets that WebAssembly supports. This ends up being a bit important as it dictates whether your WebAssembly code will (not) work with another bit as it all
nanomem: An Extremely Simple, Inference-Time Memory Module
nanomem is an extremely simple, user-owned memory module that casts memory management as LLM calls / agent loops on a markdown file tree. You interact with the tree with natural language commands like nanomem add <fact>, nanomem retrieve <query>, and nanomem import <chatgpt>. As such, nanomem is by design interpretable, partitionable, portable, and versioned.
Just Fucking Use Go - Blain Smith
Hey, dipshit. You know what compiles in two seconds, deploys as a single binary, and doesn't shit itself when a transitive dependency gets yanked from npm at 3am? Go. The same way HTML has been sitting there since the dawn of the goddamn internet waiting for you to stop overcomplicating the frontend, Go has been sitting there for over a decade waiting for you to stop overcomplicating the backend.
Help Wanted: Research Questions in Rust - Aaron Turon - OPLSS 2018