Rust¶
Systems programming language with compile-time memory safety, zero-cost abstractions, and fearless concurrency. No garbage collector - ownership and borrowing enforce safety at compile time.
Ownership and Memory¶
- ownership and move semantics - ownership rules, RAII, move semantics, Copy/Clone
- borrowing and references - borrow rules, shared/mutable refs, slices, NLL
- lifetimes - lifetime annotations, elision rules, 'static, interior mutability
- smart pointers - Box, Rc, Arc, RefCell, Cow, interior mutability
Type System¶
- structs and methods - three struct kinds, impl blocks, visibility, newtype pattern
- enums and pattern matching - algebraic types, match, if let, destructuring
- traits - trait bounds, default impls, operator overloading, orphan rule
- generics and monomorphization - type parameters, impl Trait, turbofish, static dispatch
- dynamic dispatch - dyn Trait, vtables, object safety, dyn Any
Functional Patterns¶
- closures - Fn/FnMut/FnOnce, captures, move, returning closures
- iterators - Iterator trait, lazy evaluation, adaptors, custom iterators
- collections - Vec, HashMap, BTreeMap, String, Big O complexity
Concurrency and Async¶
- concurrency - threads, Send/Sync, Arc+Mutex, channels, RwLock
- async await - tokio, futures, select, streams, Pin
Error Handling¶
- error handling - Result, Option, ? operator, anyhow/thiserror, custom errors
Language Features¶
- macros - declarative (macro_rules!) and procedural macros, derive, syn/quote
- modules and visibility - mod, pub, use, Cargo.toml, workspaces, testing, docs
Tooling and Ecosystem¶
- rust tooling - cargo, clippy, serde, rayon, FFI, web frameworks, WebAssembly, profiling