Lessons

Master Rust + WebAssembly step by step

Progress 0 / 48 (0%)
1 Beginner getting-started

What is WebAssembly?

Understand what WebAssembly is, why it exists, and where Rust fits in — before writing a single line of code.

Start lesson
2 Beginner getting-started

Rust Basics for Wasm

Learn the essential Rust syntax you need for WebAssembly — functions, types, structs, and error handling. No prior Rust experience needed.

Start lesson
3 Beginner getting-started

Hello WebAssembly

Your first Rust + WebAssembly project. Learn how wasm-bindgen bridges Rust and JavaScript.

Start lesson
4 Beginner getting-started

How wasm-bindgen Works

Understand the bridge between Rust and JavaScript — how wasm-bindgen converts types, exports functions, and generates glue code.

Start lesson
5 Beginner domgetting-started

DOM Manipulation

Access and modify the browser DOM directly from Rust using web-sys bindings.

Start lesson
6 Intermediate api

Fetch API Calls

Make HTTP requests from Rust/Wasm using the browser's Fetch API with async/await.

Start lesson
7 Intermediate security

Cryptographic Hashing

Implement SHA-256 hashing in Rust/Wasm for client-side data integrity verification.

Start lesson
8 Advanced simulationgraphics

Particle Simulation

Build a high-performance particle system rendered on HTML Canvas, powered by Rust/Wasm.

Start lesson
9 Beginner getting-started

Setting Up Your First Project

Create a Rust/Wasm project from scratch with wasm-pack, configure Cargo.toml, and integrate with a JavaScript bundler.

Start lesson
10 Beginner getting-started

Debugging Wasm

Debug Rust/Wasm applications using console logging, panic hooks, browser DevTools, and error handling best practices.

Start lesson
11 Intermediate graphicsdom

Canvas & 2D Graphics

Draw shapes, animate sprites, and build interactive graphics using HTML Canvas controlled from Rust/Wasm.

Start lesson
12 Intermediate data-structures

State Management

Share and synchronize state between Rust/Wasm and JavaScript using structs, shared memory, and message passing patterns.

Start lesson
13 Intermediate api

File Processing

Read, process, and generate files client-side using Rust/Wasm — CSV parsing, image manipulation, and file downloads.

Start lesson
14 Intermediate api

WebSockets

Build real-time communication with WebSockets from Rust/Wasm — connect, send, receive, and handle events.

Start lesson
15 Advanced dom

Wasm + Frontend Frameworks

Integrate Rust/Wasm modules with React, Svelte, and Vue — use Wasm for performance-critical logic while keeping your favorite UI framework.

Start lesson
16 Advanced getting-started

Deploying to Production

Bundle, optimize, and deploy Rust/Wasm applications to Cloudflare Pages, Vercel, Netlify, and other platforms.

Start lesson
17 Intermediate getting-started

Error Handling in Wasm

Handle errors gracefully across the Rust/JavaScript boundary using Result, JsValue, custom errors, and panic hooks.

Start lesson
18 Intermediate getting-started

Testing Wasm

Test Rust/Wasm code with wasm-pack test, headless browsers, and unit tests that run both natively and in the browser.

Start lesson
19 Advanced concurrency

Wasm + Web Workers

Run Wasm in Web Workers for parallel computation without blocking the main thread — multi-threaded performance in the browser.

Start lesson
20 Intermediate graphics

Image Processing

Process images client-side with Rust/Wasm — grayscale, blur, brightness, contrast, and pixel manipulation at near-native speed.

Start lesson
21 Intermediate data-structures

Wasm Memory Model

Understand how WebAssembly linear memory works — allocation, growth, views, and sharing data between Rust and JavaScript efficiently.

Start lesson
22 Intermediate data-structures

String Handling Deep Dive

Master string passing between Rust and JavaScript — UTF-8 vs UTF-16 encoding, performance costs, and optimization strategies.

Start lesson
23 Advanced api

Audio Processing

Process and synthesize audio in real-time with Rust/Wasm and the Web Audio API — filters, effects, and waveform generation.

Start lesson
24 Advanced graphicssimulation

Building a Wasm Game

Build a complete browser game with Rust/Wasm — game loop, input handling, collision detection, and Canvas rendering.

Start lesson
25 Advanced api

Wasm Outside the Browser (WASI)

Run WebAssembly outside the browser with WASI — server-side Wasm, edge computing, and portable binaries.

Start lesson
26 Intermediate getting-started

Wasm Performance Profiling

Measure, profile, and optimize Wasm performance — binary size reduction, runtime profiling, and benchmarking techniques.

Start lesson
27 Advanced getting-started

Wasm Binary Format

Understand the .wasm binary format — modules, sections, WAT text format, and how the browser loads and instantiates Wasm.

Start lesson
28 Advanced api

Wasm Component Model

The future of WebAssembly — composable modules, typed interfaces, and language-agnostic components that work together.

Start lesson
29 Intermediate getting-started

Closures & Callbacks Between JS and Rust

Learn how Rust closures work across the Wasm boundary — Closure::wrap, Closure::once, the 'static lifetime requirement, passing functions between JS and Rust, and managing closure memory with forget() vs into_js_value().

Start lesson
30 Advanced api

Wasm Streams & Async Iterators

Work with ReadableStream, WritableStream, and TransformStream from Rust — streaming large files, handling backpressure, and building async iterator pipelines with the wasm-streams crate.

Start lesson
31 Intermediate data-structures

Rust Enums in Wasm

Use Rust enums across the Wasm boundary — C-style enums as numbers, complex enums via serde, wasm_bindgen limitations, serde-wasm-bindgen workarounds, and TypeScript type generation.

Start lesson
32 Intermediate api

Wasm + IndexedDB

Access IndexedDB from Rust via web-sys — create databases, perform CRUD operations, manage transactions, build indexes, and use JsFuture for async database calls.

Start lesson
33 Advanced graphics

3D Graphics with WebGL

Build 3D graphics with WebGL from Rust — the rendering pipeline, vertex and fragment shaders, matrix math for rotation and projection, and rendering a spinning cube with camera and lighting.

Start lesson
34 Intermediate getting-started

Wasm Size Optimization

Learn techniques to shrink your Wasm binary — from Cargo.toml tweaks and wasm-opt to tree shaking, avoiding bloat, and measuring with twiggy.

Start lesson
35 Advanced data-structures

Custom Allocators in Wasm

Understand how Wasm memory allocation works and build your own bump allocator, arena allocator, and GlobalAlloc implementation in Rust.

Start lesson
36 Advanced api

Wasm + WebRTC

Use Rust and WebAssembly to build peer-to-peer communication with WebRTC — peer connections, data channels, signaling, and ICE candidates.

Start lesson
37 Intermediate data-structures

Serde Serialization for Wasm

Master serde serialization in Wasm — compare serde-wasm-bindgen vs JsValue, serialize complex types, and optimize for performance.

Start lesson
38 Advanced getting-started

Building a Wasm Plugin System

Design a plugin architecture using WebAssembly — sandboxed, portable, and language-agnostic — with trait-based host-guest communication and resource limits.

Start lesson
39 Intermediate getting-started

Wasm + TypeScript Integration

Bridge Rust and TypeScript with strong types — learn how wasm-bindgen generates .d.ts files, use tsify for complex types, and build type-safe Wasm APIs that feel native to TypeScript consumers.

Start lesson
40 Advanced concurrency

Multithreading with Wasm

Unlock parallel computation in the browser — learn how SharedArrayBuffer, Web Workers, and wasm-bindgen-rayon bring multithreading to WebAssembly with real speedups.

Start lesson
41 Advanced api

Wasm + Machine Learning

Run machine learning inference in the browser using Wasm — build matrix operations, implement a neural network forward pass, and learn how Rust Wasm competes with TensorFlow.js.

Start lesson
42 Intermediate data-structures

Regex & Text Processing in Wasm

Harness Rust's blazing-fast regex engine in WebAssembly — validate input, search text, parse logs, process CSV data, and handle Unicode correctly.

Start lesson
43 Intermediate graphics

Wasm + SVG Manipulation

Generate and manipulate SVG graphics from Rust — compute Bezier curves, build chart paths, optimize SVG output, and create dynamic visualizations powered by Wasm.

Start lesson
44 Intermediate data-structures

Building a Markdown Parser in Wasm

Build a markdown tokenizer and HTML converter in Rust/Wasm — learn about parsing, AST representation, and why Wasm excels at text processing.

Start lesson
45 Intermediate api

Wasm + Compression

Implement client-side data compression algorithms in Rust/Wasm — Run-Length Encoding, LZ77, and Huffman coding fundamentals.

Start lesson
46 Advanced security

Advanced Cryptography in Wasm

Implement XOR cipher, Caesar cipher, and a Feistel network block cipher in Rust/Wasm — learn the building blocks of modern encryption.

Start lesson
47 Advanced api

Wasm + PDF Generation

Generate PDF files client-side with Rust/Wasm — learn the PDF file format internals and build a minimal PDF generator from scratch.

Start lesson
48 Advanced api

SQLite in the Browser via Wasm

Build a simple in-memory SQL engine in Rust/Wasm — learn about SQL parsing, query execution, indexing, and why full databases run in the browser.

Start lesson