Learning WebAssembly Series

A series of learning texts covering the first steps with WebAssembly for complete beginners.


Some time ago I started learning WebAssembly as an absolute beginner. It has been an exciting but not so simple journey.

I decided to publish my continuous and probably neverending notices to make your learning path a little easier.

Here is the actual list of finished and planned posts. I will constantly update and extend it.

Hello, World of Wasm!
Let’s try WebAssembly for the first time. We will create a simple program in the Wat text format, compile it into Wasm binary, and finally execute it in a browser and as a server application.
Wasm Binary Format
We will explore the structure of the Wasm binary format byte by byte.
Wat Programming Basics
Finally some real programming! We will learn the very basics of the Wat text format, how to work with functions and variables, write conditions, and loops.
Wasm Memory and Working with Strings
The concept of memory objects is very important know-how in Wasm. We will use it to deal with strings.
Running Wasm in the Browser
WebAssembly is part of the web platform, thus it is important to understand interactions between Wasm and JavaScript. We will learn about shared memory and global variables.
Running Wasm in Node.js
Browser is not the only environment that Wasm can run in. We will also learn how to execute Wasm in Node.js, the popular backend platform, as well.
Introducing WASI
WebAssembly System Interface (WASI) provides access to several operating-system-like features from Wasm. We will learn how to write programs that use WASI.
Compiling into Wasm
There are plenty of languages that can be compiled into Wasm. We will take a look at some of them.
AssemblyScript Basics
AssemblyScript syntax is very close to JavaScript and as such is an ideal candidate to write Wasm in. We will explore the basics of AssemblyScript and create a few neat programs.
Image Processing in AssemblyScript
WebAssembly is a great fit for computation-intensive tasks like generating and processing graphics. We will experiment in this field a little.

You are welcome to join me on the exciting journey of learning WebAssembly!