Intro: What is Wasm?
The stack machine, why & where Wasm runs, your first module. Start →
Intro: What is Wasm?
The stack machine, why & where Wasm runs, your first module. Start →
The WAT Text Format
Modules, funcs, value types, locals & the stack, arithmetic. Write WAT →
Control Flow & Functions
Blocks, branches, loops, if/else, calls & recursion. Branch →
JS Interop & Loading
instantiate, imports & exports, streaming, number marshalling. Interop →
Linear Memory & Data
The shared ArrayBuffer, typed-array views, passing strings, growing. Memory →
Languages to Wasm
Rust (wasm-bindgen), C (Emscripten), AssemblyScript, choosing one. Compile →
Tooling
wabt, Binaryen (wasm-opt), inspecting & optimizing .wasm. Tools →
WASI & Beyond the Browser
WASI, wasmtime/wasmer, the component model, real-world use cases. Go further →
Runs in your browser
Write WAT and click Run — it compiles to Wasm and executes right here, with real output. No install.
Diagrams that explain
The stack machine, caching of the compile→instantiate flow, and memory layout as Mermaid diagrams.
Real toolchains
Compile Rust, C, and AssemblyScript to Wasm — open runnable AssemblyScript projects in StackBlitz.
Bilingual + read mode
English and ไทย, quizzes with saved progress, and a distraction-free read mode.
This course’s facts, code, and version-specific claims were last checked against real toolchains and official docs in September 2026:
| Tool | Verified version |
|---|---|
| Rust / Cargo | 1.96.1 |
wasm-bindgen-cli | 0.2.128 |
wasm-pack (actively maintained under rustwasm) | 0.13.1 |
| Wasmtime | 49.0.0 |
WABT (wat2wasm, wasm2wat) | 1.0.42 |
Binaryen (wasm-opt) | version 133 |
| Node.js | 24.13.0 |
Where a lesson names a specific proposal’s standardization phase (e.g. the Component Model, Threads) or a WASI preview version, it reflects the WebAssembly/proposals tracker and the WASI repository as of the same date — check those directly if you’re reading this much later, since phases do change.