Idiomatic Programming for Experienced Developers
"You'll learn dozensprobably hundredsof things about how to improve your Rust programming by reading this book." Tim McNamara, author of Rust in Action "One of Rust's weaknesses as a language is there's a lot of beginner content and a lot of advanced content, but any intermediate content is just nonexistent or requires quite the struggle to learn. Jon Gjengset has done a wonderful job of distilling those next steps into an easy to read book." Michael Gattozzi, Senior Software Engineer, Fastly "For a long time, people have asked me what they should read after The Rust Programming Language. Rust for Rustaceans is that book. This book will teach you how to effectively *use* Rust, after you've understood the core syntax and semantics of the language itself. Rust has a rich number of tools for you to choose from, and Rust for Rustaceans will show them all off, and teach you how to properly take advantage of all the richness Rust has to offer." Steve Klabnik, co-author of The Rust Programming Language "Rust for Rustaceans is such a good book (for folks who already know rust)!" Ron Bowes, @iagox86
Jon Gjengset has worked in the Rust ecosystem since the early days of Rust 1.0, and built a high-performance relational database from scratch in Rust over the course of his PhD at MIT. Hes been a frequent contributor to the Rust toolchain and ecosystem, including the asynchronous runtime tokio, and maintains several popular Rust crates, such as hdrhistogram and inferno. Jon has been teaching Rust since 2018, when he started live-streaming intermediate-level Rust programming. Since then, hes made videos that cover advanced topics like async and await, pinning, variance, atomics, dynamic dispatch, and more, which have been received enthusiastically by the Rust community. David Tolnay, who reviewed the books technical content, is a prolific, well-known, and respected contributor in the Rust ecosystem who maintains some of the most widely used Rust libraries, including syn, serde, and anyhow. He is also a member of the Rust library team.
Chapter 1: Rust Programming Mindset Chapter 2: Foundations Chapter 3: Types and Traits Chapter 4: Designing Interfaces Chapter 5: Error Handling Chapter 6: Project Structure Chapter 7: Testing Chapter 8: Macros Chapter 9: Asynchronous Programming Chapter 10: Unsafe Rust Chapter 11: Concurrency Chapter 12: Foreign Function Interface Chapter 13: no_std Chapter 14: Interacting with Large Projects Chapter 15: Putting It Together Index