The Rust Programming Language, 2E Cover

The Rust Programming Language, 2nd Edition

by Steve Klabnik and Carol Nichols
December 2022, 560 pp.
Lay-flat binding

Download Chapter 2: Programming a Guessing Game

Look Inside!

The Rust Programming Language, 2nd Edition back coverThe Rust Programming Language, 2nd Edition pages 64-65The Rust Programming Language, 2nd Edition pages 298-299The Rust Programming Language, 2nd Edition pages 330-331

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.

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.

Author Bio 

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.

Table of contents 

Chapter 1: Getting Started
Chapter 2: Programming a Guessing Game
Chapter 3: Common Programming Concepts
Chapter 4: Understanding Ownership
Chapter 5: Using Structs to Structure Related Data
Chapter 6: Enums and Pattern Matching
Chapter 7: Managing Growing Projects with Packages, Crates, and Modules
Chapter 8: Common Collections
Chapter 9: Error Handling
Chapter 10: Generic Types, Traits, and Lifetimes
Chapter 11: Writing Automated Tests
Chapter 12: An I/O Project: Building a Command Line Program
Chapter 13: Functional Language Features: Iterators and Closures 
Chapter 14: More About Cargo and
Chapter 15: Smart Pointers
Chapter 16: Fearless Concurrency
Chapter 17: Object-Oriented Programming Features
Chapter 18: Patterns and Matching
Chapter 19: Advanced Features
Chapter 20: Final Project: Building a Multithreaded Web Server
Appendix A: Keywords
Appendix B: Operators and Symbols
Appendix C: Derivable Traits
Appendix D: Useful Development Tools 
Appendix E: Editions

View the Copyright page
View the detailed Table of Contents
View the Index


"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 

"A great resource for mastering Rust's fundamentals. Rust is a language that rewards a deep understanding of its features, from ownership rules to pattern matching, and this book is an excellent tool to achieve that. . . . If you're thinking about seriously learning Rust, this book is for you."
—Adam Vartanian, Engineering Manager at Cord

"From a person who read the first edition front to back, the second edition of The Rust Programming Language met and exceeded my expectations! It's well-written and formatted to help introduce the reader to all the concepts of Rust. . . . Overall, this edition won't disappoint and is an excellent addition to a programmer's personal library." 
—Jared Wolff, Owner, Circuit Dojo LLC

"Verdict: Recommended"
—Paul Floyd, CVu Magazine

Reviews of the first edition:

"Covers everything you could want to know about the language."
Stack Overflow

"The book . . . provides information on how developers can get started with Rust."
—Tiera Oliver, Embedded Computing Design

"I'd learned @rustlang back in late-2019 and referred [to The Rust Programming Language]. It's written very well, and is still relevant if you want to refer to."
—Trivikram, @trivikram

"A thing of beauty in a world full of dry arcane texts."
—Garrett Mace, @macegr

"My main learning resource."
—Pawel Grzybek, @pawelgrzybek, Software Engineer

“Must Read Guide to Rust . . . Anyone that aims to learn to code in Rust should read this book.”
—C. Bruce, Amazon Reviewer

Extra Stuff 

Check out Carol Nichols' interview on the Open Source Security podcast.

Watch Steve Klabnik's interview with devtools-fm.