How to use this guide
- Part 0 (Start here): setup, how this guide fits the series, and a one-page Go ↔ C ↔ Rust phrasebook. Read the phrasebook even if you skip everything else in Part 0.
- Beginner (Part I): the toolchain, types, expressions, ownership, borrowing, slices and strings, enums and pattern matching, errors, collections, modules. Chapters 6–8 are the core of the language. Part I ends with a 🔎 Checkpoint and two terminal projects.
- Intermediate (Part II): traits, generics, trait objects, the standard
traits, lifetimes, closures, iterators, smart pointers, testing, I/O.
Ends with a checkpoint, a
grepclone, and an LRU cache. The LRU cache shows why a doubly linked list is hard in Rust and what to do instead. - Advanced (Part III): threads,
Send/Sync, locks, atomics, channels, async Rust and Tokio, networking,unsafe, FFI with C, macros, performance. Ends with a thread pool and a Tokio chat server. - Systems Rust (Part IV): the OS guide
rebuilt in Rust: syscalls, processes and signals, crash-safe files,
/proc,mmap, custom allocators, and Linux namespaces. - Network and HTTP services (Part V): the networking
and HTTPS lifecycle guides in Rust:
a DNS client from raw bytes, HTTP from a bare socket, a production Axum
server, safe outbound clients, TLS and mTLS with
rustls, and a reverse proxy. - Security-focused Rust (Part VI): what Rust prevents and what it does not, cryptography done correctly, parsing untrusted input, fuzzing, supply chain, and a JWT auth service. Ties to both security guides.
- Expert (Part VII): memory layout, vtables, how
asynccompiles,Pin, variance and drop check, memory ordering, API design. Ends with two capstones: a Redis-like key-value server, and one HTTPS request traced through every guide, in Rust. - Professional Rust (Part VIII): debugging, workspaces, CI, release builds, containers and Kubernetes, and an anti-pattern catalog.
- Appendices: a compiler-error decoder, a cheat sheet, a glossary, a 90-day plan, and further reading.
Conventions:
- Code targets Rust 1.92+ with edition 2024. Every complete program in
this guide was compiled with
rustc 1.92.0. Anything newer works. Third-party crate versions are the ones current when the guide was written. They are pinned in eachCargo.tomlsnippet. - Snippets that are wrong on purpose, such as borrow-checker errors,
start with
// DOES NOT COMPILE. Each one is followed by the compiler's error and the fix. They were checked to fail with the error shown. - Real-world example boxes connect a language feature to code you will actually write. War story boxes describe a real class of incident or design trade-off.
- Across the series notes link to the chapter in another guide that covers the same topic from the OS, network, security, Go, or C side.