Externally indexed torrent
If you are the original uploader, contact staff to have it moved to your account
Textbook in PDF format
The Rust Programming Language, 2nd Edition is the official guide to Rust 2021: an open source systems programming language that will help you write faster, more reliable software. Rust provides control of low-level details along with high-level ergonomics, allowing you to improve productivity and eliminate the hassle traditionally associated with low-level languages.
It wasn’t always so clear, but the Rust programming language is fundamentally about empowerment: no matter what kind of code you are writing now, Rust empowers you to reach further, to program with confidence in a wider variety of domains than you did before.
Programmers who are already working with low-level code can use Rust to raise their ambitions. For example, introducing parallelism in Rust is a relatively low-risk operation: the compiler will catch the classical mistakes for you. And you can tackle more aggressive optimizations in your code with the confidence that you won’t accidentally introduce crashes or vulnerabilities.
But Rust isn’t limited to low-level systems programming. It’s expressive and ergonomic enough to make CLI apps, web servers, and many other kinds of code quite pleasant to write—you’ll find simple examples later in the book. Working with Rust allows you to build skills that transfer from one domain to another you can learn Rust by writing a web app, then apply those same skills to target your Raspberry Pi.
This book fully embraces the potential of Rust to empower its users. It’s a friendly and approachable text intended to help you level up not just your knowledge of Rust, but also your reach and confidence as a programmer in general. So dive in, get ready to learn—and welcome to the Rust community!
This version of the text assumes you’re using Rust 1.62.0 (released 2022-06-30) or later with edition="2021" in the Cargo.toml file of all projects to configure them to use Rust 2021 edition idioms. See “Installation” on page 1 for instructions on installing or updating Rust, and see Appendix E for information on editions. The 2021 edition of the Rust language includes a number of improvements that make Rust more ergonomic and that correct some inconsistencies.
Klabnik and Nichols, alumni of the Rust Core Team, share their knowledge to help you get the most out of Rust's features so that you can create robust and scalable programs. You'll begin with basics like creating functions, choosing data types, and binding variables, then move on to more advanced concepts, such as:
-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.
Review
"The Rust Programming Language has always been, and continues to be, the first place I point anyone looking to learn Rust. It's referred to simply as "The Book", and with good reason -- it's comprehensive and elaborate, yet friendly and thoughtful, and serves as a guide not only to the language itself, but to the principles and mental models that Rust encourages its users to adopt. The 2nd edition is a reflection of the ongoing love for the book in the community, and ensures that it will remain a solid introduction to the best Rust has to offer for years to come."
—Jon Gjengset, author of Rust for Rustaceans
"The Rust Programming Language, 2nd Edition has been improved, refined, and still remains *the book* to get started with learning Rust. Whether an experienced or a new Rustacean it's an invaluable resource on how Rust works."
—Michael Gattozzi, Senior Software Engineer at Fastly
About the Author
Carol Nichols is a member of the Rust Community Team and a former member of the Rust Core Team. Also active in the Ruby community, she was a key organizer of the Steel City Ruby Conference 2012-2014.
Steve Klabnik is the Community Team Leader for the Rust team at Mozilla, in charge of official Rust community documentation, as well as a trusted Rust community advocate. Klabnik is a frequent speaker at conferences and one of the world's most prolific contributors to Rails projects