The Rust Programming Language ("the Book")
by Steve Klabnik, Carol Nichols, Chris Krycho
The Source Truth for the language: the official Rust book, free online and in print. Covers ownership, borrowing, lifetimes, traits, cargo, error handling, concurrency and async, ending with a multithreaded web server you build yourself.
More resources on Rust
The Rustonomicon
The Source Truth for unsafe code: official documentation for unsafe Rust: what safety means, subtyping and variance, uninitialized memory, exception safety, FFI, and the aliasing rules. After it you can wrap unsafe primitives in sound safe abstractions.
Crust of Rust
The best video-format Rust material that exists, and one of the few that is structural. Long-form live sessions reimplementing standard-library machinery from scratch: lifetimes, iterators, smart pointers, channels, atomics, subtyping, dispatch. Watching the compiler push back in real time teaches why the API shapes are what they are.
Rust Atomics and Locks: Low-Level Concurrency in Practice
Written by the person who maintains the code it explains. It is the field's bible for Rust concurrency and, unusually for an O'Reilly title, is legally free in full at the author's site. Works up from atomics and memory ordering to building Mutex, RwLock and condition variables on raw OS futex primitives, so you can reason about lock-free code and implement your own.
Rust for Rustaceans: Idiomatic Programming for Experienced Developers
Picks up where the Book stops: variance, trait coherence and object safety, declarative and procedural macros, unsafe abstractions, FFI, testing, and crate design. After it you can build and maintain a published library.
Comprehensive Rust
Practitioners with real skin in the game shipping Rust into Android. A four-day course Google's Android team uses to retrain experienced engineers, with optional tracks on concurrency, bare-metal and Chromium. Assumes you already program; moves fast through syntax to idiomatic ownership and error handling.
Rustlings
An official rust-lang exercise set installed via cargo. Each small program fails to compile until you fix it, so you practice reading compiler errors and applying ownership, traits and error-handling rules yourself.