Each lecture is 50 minutes on Tuesdays from 7:00-7:50pm. On some weeks, we might have extra content planned for after lecture under After Dark, but we'll only do it if people want to stay and hang out since it won't be required material.
- Main Source: The Rust Programming Language (The Rust Book)
- The Rust Lang Book in video format on YouTube
- Rust By Example
- The Rustonomicon
- The Rust Reference
- Rust for Rustaceans - PDF available on O'Reilly for CMU students
- Exercism
rustlings
- Why Rust?
cargo
basics- Rust Syntax
- Variables and Mutability
- Types
- Functions, Statements, and Expressions
- Control Flow
- Course Logistics
- Installing Rust
- Setting up rust-analyzer
- RustRover
- Ownership
- The
String
Type - Move Semantics
- The
- References and Borrowing
- Slices
- The
Vec
Type
- Ownership review
- Structs
- Enums
- Pattern Matching
- The
Vec<T>
Type - The
String
Type - The
HashMap<K, V>
Type - Generics
- Remaining collections in
std::collections
- Error Handling
- Traits
anyhow
- Packages and Crates
- Modules
- Module Paths and File Structure
- The
use
Keyword
- Testing
- Unit Tests
- Integration Tests
no_std
:rand
,time
std
:clap
,log
,tracing
,anyhow
,flamegraph
- Closures
- Captures
- The
move
Keyword Fn
traits
- Iterators
Iterator
Trait andnext
- Loops vs. Iterators
- More Essential Rust Crates
rayon
serde
criterion
- Validating References
- The Borrow Checker
- Lifetimes vs. Scope
- Lifetimes vs. Memory
- Generic Lifetimes
- Lifetime Annotations
- Lifetime Elision
'static
Lifetimes
- The
Box<T>
Type - The
Deref
Trait and Deref Coercion - The
Drop
Trait andstd::mem::drop
- Object-Oriented Programming
- Trait Objects
- Dynamic dispatch with
dyn
- Dynamic dispatch with
- Dynamically Sized Types
- Object Safety
- The
Rc<T>
Type - The
RefCell<T>
Type - Memory Leaks
- Unsafe Superpowers
- Raw Pointers
- FFI
Cow<'a, B>
UnsafeCell<T>
andCell<T>
- Implementation of:
Cell<T>
RefCell<T>
Rc<T>
- The
Arc<T>
Smart Pointer - The
Mutex<T>
Smart Pointer - The
RwLock<T>
Smart Pointer std::sync::mspc::channel
- Shared State vs Channels
Sync
andSend
traits
Weak<T>
CondVar
- Implementation of:
Arc<T>
Mutex<T>
async
await
- The
Pin<T>
Type - TODO
- Declarative Macros
macro_rules!
- Procedural Macros
- TODO