Table of content
2025-10-05 (last edit: 2025-10-05)
Lessons have the following content & introduced concepts:
-
Introduction:
- Rust syntax, common programming concepts (variables, conditionals, loops, functions, etc.);
- A Taste Of Rust, slides introducing briefly to Rust's most distinctive features.
-
Ownership:
- panicking - because it's everywhere (think
unwrap()
)
- panicking vs Result - when to use which and how
- Rust Ownership model compared to GC and C++'s
- RAII
- move semantics, clones, Copy
- borrowing, aliasing XOR mutability
- slicing, string literals
-
Data types & project structure:
- structs
- enums
- pattern matching
- modules, crates, packages, visibility, exports & imports
-
Traits
- traits
derive
- generics
- trait bounds
- static vs dynamic dispatch
- lifetime annotations
- lifetime elision
-
Functional features
- closures
- iterators
- functional API on Option & Result
-
Heap management
- Drop
- Deref & deref coercion
- Box
- Rc
- Interior mutability: Cell, RefCell
- bonus: Cow
-
Fearless concurrency
- concurrency vs parallelism - recap
- thread spawning
move
closures
- panic no propagation
- channels
- mutexes, rwlocks
- Send & Sync
- atomics
- data parallelism: Rayon
-
Design patterns
- OOP in Rust, typestate pattern
- API guidelines
- error handling
- serde
-
Async
-
Async 2
- reinventing Future
- Pin'ning
-
Macros
- declarative macros (macro_rules!)
- procedural macros
-
Unsafe Rust
- how to bypass borrow checker
- why and when to use unsafe
- safe/unsafe Rust guarantees