- Ownership and borrowing, lifetimes, generics, traits, and trait objects to communicate your program's constraints to the compiler
- Smart pointers and multithreading, and how ownership interacts with them to enable fearless concurrency
- How to use Cargo, Rust's built-in package manager, to build, document your code, and manage dependencies
- The best ways to test, handle errors, refactor, and take advantage of expressive pattern matching
In addition to the countless code examples, you'll find three chapters dedicated to building complete projects: a number-guessing game, a Rust implementation of a command line tool, and a multithreaded server.