Rust Training

A Rust programming course delivered as code + per-lesson reveal.js slide decks. Starts at programming-101 and finishes with concurrency, systems programming, production services, and distributed patterns.

Phase 1 · Programming 101 in Rust
01
Hello, Rust
cargo · rustup · println! · fn main()
02
Variables, types, mutability
let · mut · shadowing · type inference
03
Control flow & functions
if · loop · while · for · expressions
04
Compound types
tuples · arrays · slices · String vs &str
05
Pattern matching & enums
match · if let · Option<T>
06
Structs & methods
struct · impl · associated functions
Phase 2 · Ownership deep dive
07
Ownership & moves
ownership rules · move semantics · Copy
08
References & borrowing
&T · &mut T · borrowing rules
09
Lifetimes
'a · lifetime elision
10
Smart pointers
Box · Rc · Arc · RefCell
11
Iterators & collections
Vec · HashMap · iterator chains
Phase 3 · Abstraction
12
Traits & generics
trait · generic bounds · where
13
Trait objects
dyn Trait · static vs dynamic dispatch
14
Error handling
Result · ? · thiserror · anyhow
15
Modules, crates, workspaces
mod · pub · crates · workspace
Phase 4 · Concurrency
16
Threads & channels
thread::spawn · Send · Sync · mpsc
17
Shared state
Mutex · RwLock · Arc<Mutex<T>>
18
Async/await with Tokio
async · await · Future · Tokio runtime
Phase 5 · Systems programming
19
Memory, layout, unsafe
unsafe · raw pointers · #[repr]
20
FFI
extern · cbindgen · bindgen
21
I/O & filesystem
std::io · File · Read · Write
Phase 6 · Production services
22
Building a CLI
clap · exit codes · structured output
23
HTTP services with Axum
axum · extractors · State · handlers
24
Persistence
sqlx · migrations · transactions
25
Observability
tracing · structured logs · metrics
Phase 7 · Tooling & quality
26
Testing
unit · integration · doc tests · proptest
27
Clippy, rustfmt, miri
lints · rustfmt · miri · CI
28
Benchmarking & profiling
criterion · flamegraphs · pprof
Phase 8 · Distributed patterns
29
Serialization & gRPC
serde · tonic · prost
30
Resilience patterns
retries · timeouts · circuit breakers
31
Course capstone
distributed task processor