- Overview
- Installation
- Basic Types
- Control Flow
- Compound Types
- Ownership and Borrowing
- Error Handling
- Collections
- Iterators
- Imports and Modules
- Good Design Practices
Using Rust on Windows/macOS/Linux. Requires Rust Fundamentals.
- Methods and Traits
- Rust I/O Traits
- Generics
- Lifetimes
- Cargo Workspaces
- Heap Allocation (Box and Rc)
- Shared Mutability (Cell, RefCell)
- Thread Safety (Send/Sync, Arc, Mutex)
- Closures and the Fn/FnOnce/FnMut traits
- Spawning Threads and Scoped Threads
Topics that go beyond Applied Rust.
- Advanced Strings
- Building Robust Programs with Kani
- Debugging Rust
- Deconstructing Send, Arc, and Mutex
- Dependency Management with Cargo
- Deref Coercions
- Design Patterns
- Documentation
- Drop, Panic and Abort
- Dynamic Dispatch
- Macros
- Property Testing
- Rust Projects Build Time
- Send and Sync
- Serde
- Testing
- The stdlib
- Using Cargo
- Using Types to encode State
Rust for the Linux Kernel and other no-std environments with an pre-existing C API. Requires Applied Rust.
Topics about using Rust on ARM Cortex-M Microcontrollers (and similar). Requires Applied Rust.
- Overview of Bare-Metal Rust
- Booting a Cortex-M Microcontroller
- PACs and svd2rust
- Writing Drivers
- The Embedded HAL and its implementations
- Board Support Crates
- Using defmt
Topics around Ferrocene, the qualified toolchain for writing safety-critical systems in Rust.