The series: 1 OS → 2 Networking → 3 Security → 4 HTTPS walkthrough, with Go and Rust alongside. Languages track: Go → C → Rust.
You are here: languages track, step 3: Rust. ← Previous: C — The Complete Field Guide. Start the series at step 1: Operating Systems, Linux, and Containers.
🦀
Runs alongside the series
Rust — The Complete Field Guide (Beginner → Expert)
A practical, example-driven path through Rust: what the language actually gives you, why it is shaped the way it is, and how to use it to build real CLIs, network services, systems tools, and security-sensitive code.
Contents
79 chapters, one page each. Prefer one long page? Read the whole book on one page.
- How to use this guide2 min
- Table of contents3 min
- Part 0 — Start here
- 0.1 Setup: rustup, cargo, rust-analyzer, clippy1 min
- 0.2 The series: OS → networking → security → HTTPS → Go → C → Rust3 min
- 0.3 The Go ↔ C ↔ Rust phrasebook2 min
- 0.4 The Rust labs: what you build for each guide in the series2 min
- Part I — Foundations: the Rust way
- 1. What Rust is, and why it exists3 min
- 2. The toolchain: cargo, crates, editions, and what cargo build really does2 min
- 3. Variables, mutability, shadowing, and scalar types3 min
- 4. Control flow: everything is an expression2 min
- 5. Functions, statements, and the unit and never types1 min
- 6. Ownership: moves, copies, and drop4 min
- 7. Borrowing: shared XOR mutable3 min
- 8. Slices and strings: fat pointers and UTF-82 min
- 9. Structs, enums, and pattern matching3 min
- 10. Error handling: Result , ? , and panics3 min
- 11. Collections: Vec , HashMap , and friends1 min
- 12. Modules, crates, and visibility1 min
- 13. 🔎 Checkpoint: ownership and borrowing2 min
- 14. Terminal project: a word-frequency counter1 min
- 15. Terminal project: a /etc/hosts -style config parser with real errors2 min
- Part II — Intermediate: traits, lifetimes, and the standard library
- 16. Traits and generics: shared behavior without inheritance3 min
- 17. Trait objects: dyn Trait and dynamic dispatch2 min
- 18. The standard traits you will implement every week2 min
- 19. Lifetimes: naming how long a borrow is valid3 min
- 20. Closures: Fn , FnMut , FnOnce1 min
- 21. Iterators: lazy, composable, zero-cost2 min
- 22. Smart pointers: Box , Rc , Arc , Cell , RefCell , Weak2 min
- 23. Testing: unit, integration, doc tests, and property tests2 min
- 24. I/O, files, processes, and application errors2 min
- 25. 🔎 Checkpoint: traits and lifetimes1 min
- 26. Terminal project: rgrep , a tested grep clone2 min
- 27. Terminal project: an LRU cache, and why linked lists are hard in Rust3 min
- Part III — Advanced: concurrency, async, unsafe
- 28. Threads, and why data races do not compile3 min
- 29. Shared state: Mutex , RwLock , atomics, Condvar , channels3 min
- 30. Async Rust: futures, poll , and why async exists2 min
- 31. Tokio in practice: tasks, select! , timeouts, cancellation, shutdown3 min
- 32. Networking with std and Tokio: TCP, UDP, and framing3 min
- 33. unsafe Rust: the five superpowers and the contract they carry2 min
- 34. FFI: calling C from Rust and Rust from C2 min
- 35. Macros: macro_rules! and what derive macros do1 min
- 36. Performance: release profiles, benchmarks, profiling, allocations2 min
- 37. Project: a thread pool from scratch2 min
- 38. Project: a multi-room chat server with Tokio2 min
- Part IV — Systems Rust: the OS guide in Rust
- 39. Syscalls from Rust: std , libc , and nix2 min
- 40. Processes, exit codes, and signals3 min
- 41. Files that survive crashes: fsync and atomic replacement1 min
- 42. Reading /proc : build your own ps1 min
- 43. Memory: mmap and a counting global allocator2 min
- 44. A container in 100 lines: namespaces with nix4 min
- Part V — Network and HTTP services: the networking and HTTPS guides in Rust
- 45. A DNS client from raw bytes5 min
- 46. HTTP/1.1 from a bare TcpListener5 min
- 47. A production HTTP server with Axum: limits, timeouts, tracing, shutdown3 min
- 48. Outbound requests: timeouts, retries, idempotency, and an SSRF guard5 min
- 49. TLS and mutual TLS with rustls3 min
- 50. A reverse proxy with Hyper, and request-smuggling defenses4 min
- Part VI — Security-focused Rust
- 51. What Rust prevents, and what it does not2 min
- 52. Cryptography done right: AEAD, password hashing, HMAC, constant-time, zeroize4 min
- 53. Parsing untrusted input: newtypes, "parse, don't validate", resource bounds2 min
- 54. Fuzzing and property testing2 min
- 55. Supply chain: Cargo.lock , cargo audit , cargo deny , build.rs2 min
- 56. Project: an auth service with Argon2 and JWTs4 min
- Part VII — Expert: internals and design
- 57. Memory layout: size, alignment, niches, repr(C) , fat pointers2 min
- 58. Inside Vec , String , Box , and trait objects3 min
- 59. How async compiles: state machines, Pin , and a tiny executor3 min
- 60. Variance, PhantomData , and drop check2 min
- 61. Memory ordering: Relaxed , Acquire / Release , SeqCst , and a spinlock3 min
- 62. API design: newtypes, typestate, builders, errors, and semver3 min
- 63. Capstone: a Redis-compatible key-value server with persistence6 min
- 64. Capstone: one HTTPS request, every layer, every guide, in Rust4 min
- Part VIII — Professional Rust
- 65. Debugging: backtraces, lldb / gdb , tokio-console , Miri2 min
- 66. Workspaces, CI quality gates, release builds, and cross-compilation2 min
- 67. Running Rust in containers and Kubernetes2 min
- 68. How not to write Rust: an anti-pattern catalog3 min
- Appendices
- Appendix A — Compiler-error decoder: the 15 errors you will actually see1 min
- Appendix B — Cargo and tooling cheat sheet1 min
- Appendix C — Glossary1 min
- Appendix D — A 90-day plan1 min
- Appendix E — Further reading and codebases worth reading1 min
Generated from real-life-rust-guide.md · 8 Oct 2026 16:36