The Little Book of Rust Books
This book is a treasure-trove of Rust books:
- Official books maintained at rust-lang.org
- Unofficial books maintained elsewhere
- Application books on specific Rust applications
If you know of others, why not submit a pull request?
Titles not in mdbook format are italicised. For more books in other formats, see Rust Books.
Official Rust Books
The following books are maintained at rust-lang.org. Many of them are mentioned in Learn Rust.
Introductory:
- Rust by Example - runnable examples illustrating Rust concepts
- Rustlings - small exercises to get you used to reading and writing Rust code
- The Rust Programming Language - “the book”
Core:
- The Cargo Book - the Rust package manager
- The Edition Guide - guide on introducing changes into the Rust language
- The rustc Book - guide to the compiler for the Rust programming language
- The rustdoc Book - guide to the tool which generates documentation for Rust projects
- The rustup Book - guide to the tool which installs the Rust language from release channels
Advanced:
- Guide to Rustc Development - compiler internals
- Rust Forge - Rust team documentation
- The Rust Reference - primary reference to the Rust language
- The Rust Unstable Book - nightly-only features
- The Rustonomicon - the dark arts of unsafe Rust
- Unsafe Code Guidelines Reference -
unsafe
coding practices
Working groups:
- Compiler team working groups - a list of working groups
- Const Generics Project Group - design and implementation of the const generics feature
- Rust Project Goals - Rust Project Goals tracker
- Standard library developers Guide
- The Rust Language Design Team - information related to the work of the lang team
- The Types Team - traits implementation improvements
- wg-async - foundations of async I/O
Initiative:
- async fn fundamentals initiative
- Dyn upcast initiative
- Generic Associated Types Initiative
- Impl trait initiative
Other:
- Asynchronous Programming in Rust - non-blocking coroutines
- cargo-bisect-rustc - tool for automatically downloading and bisecting rustc artifacts and tests until it finds a given regression
- Clippy Documentation - code lints for programmers
- Criterion.rs - statistics-driven micro-benchmarking
- Error Codes Index - list of all error codes emitted from the Rust compiler
- mdBook - authoring, rendering and serving markdown books
- Polonius - experimental borrow checker crate
- Rust API Guidelines - how to design and present APIs
- Rust RFCs - list of Requests For Comments for changes to Rust
- The Chalk Book - Rust’s new trait system implementation
- The
bindgen
User Guide - automatically generates Rust FFI bindings to C and C++ libraries
Unofficial Rust Books
The following books are maintained outside rust-lang.org.
Introductory:
- 100 Exercises to Learn Rust
- A Gentle Introduction To Rust
- A half-hour to learn Rust
- Common Rust Lifetime Misconceptions
- Comprehensive Rust 🦀 - a multi-day course developed by Google to teach Rust to Android engineers
Dyner
- experimental trait (dyn) objects in Rust- Easy Rust - aimed at non-English native speakers
- Effective Rust - Rust guidelines1
- Error Handling in Rust
- Futures Explained in 200 Lines of Rust - from the internet archive
- Java-Rust Generics
- Learn Rust the Dangerous Way
- Learning Rust - a collection of resources by
quinedot
- Learning Rust With Entirely Too Many Linked Lists
- LifetimeKata
- Pointers
- py2rs - from Python into Rust
- r4cppp - quick introduction to Rust for C++ programmers
- rust-cross - everything you need to know about cross compiling Rust programs!
- Rust Anthology 1
- Rust By Practice - Rust practice through challenging examples, exercises and projects
- Rust Cookbook - a collection of example programs
- Rust for C++ Programmers
- Rust for Clojurists
- Rust for Node Developers
- Rust for the Polyglot Programmer
- Rustic Symmetries
- Rust Iterators
- Rust Ownership, the Hard Way
- Rust 101 - Rust programming language learning guide
- Small Rust Tutorial For MLOps - learn Rust for MLOps
- The Node Experiment: Exploring Async Basics with Rust - from the internet archive
Application domains:
- Async
- Async programming in Rust with async-std
- Async Raft - the Raft distributed consensus protocol in async Rust
- Learning Async Rust with Entirely Too Many Web Servers
- The Node Experiment - Exploring Async Basics with Rust
- Tokio Tutorial - event-driven, non-blocking I/O
- Comparing parallel Rust and C++
- Command line
- Command Line Applications in Rust
- PNGme: An Intermediate Rust Project - building a command line program to hide secret messages in PNG files
- CXX — Safe Interop Between Rust and C++
- Embedded
- Embedded: The Missing Parts
- Embedded Rust on Espressif - training Material for learning to use Embedded Rust with the Espressif ESP32-C3.
- The Embedded Rust Book
- The Embedonomicon - build a
#![no_std]
application from scratch - The Rust on ESP Book - comprehensive guide on using the Rust programming language with Espressif SoCs and modules.
- Workbook for Embedded Workshops - an embedded Rust workshop
- Foreign Function Interface (FFI)
- Real-Time Interrupt-driven Concurrency
- Triangle From Scratch - draw a triangle using Win32, but no external crates
- Web assembly
- Writing an OS in Rust
- Writing Interpreters in Rust: a Guide
Other:
- Macros
- Advanced Macros
- MacroKata - a series of worked exercises to learn macros
- The Little Book of Rust Macros
- Rust Latam: procedural macros workshop
- High Assurance Rust - developing secure and robust software
- Rust Design Patterns
- Rust Fuzz Book - fuzz testing
- Rust Performance
- Salsa - framework for on-demand, incrementalized computation
- Secure Rust Guidelines
- The Little Book of Rust Books
- The Rust Rand Book - Rust’s random number library
- Rust Tutorials
- Usability of Programming Languages - comparison of basic idioms in Rust, Python and Crystal
1
Some concepts are incomplete, as of March 2022.
Rust Application Books
Applications of Rust:
- An Introduction to Chip-8 Emulation using the Rust Programming Language - PDF book
- A thoughtful introduction to the pest parser - a library for writing plain-text parsers
- Build a Lua Interpreter in Rust
- Book of crosvm - a hosted (a.k.a. type-2) virtual machine monitor
- Cross-platform Rust Components - Rust components for Firefox integration
- Create Your Own Programming Language with Rust
delta
- syntax-highlighting pager for git, diff, and grep output- Embedded
- Anachro - a network protocol and a PC architecture for microcontrollers
- Discovery - use an F3 Discovery circuit board and Rust
- The Rust on ESP Book
- Game development
- Amethyst Game Engine
- BEVY The Book - data-driven game engine
- DMG-01: How to Emulate a Game Boy
- Emergent AI - smart agents and events
- Fyrox Cheat Book - a general purpose game engine
- Roguelike Tutorial - In Rust - Roguelike game development
- Rust sokoban - puzzle video game
- The Specs Book - an introduction to Entity–component–system (ECS) and the Specs API
- Writing NES Emulator in Rust - NES is the Nintendo Entertainment System gaming platform
- GPU development
- GraphQL
- Async-graphql Book - GraphQL server-side library
- Cynic - A GraphQL Client For Rust
- Juniper - GraphQL Server for Rust
- GUI development
- Druid
- GUI development with Relm4
- GUI development with Rust and GTK 4
- SixtyFPS Memory Game Tutorial (Rust) - tutorial using the SixtyFPS GUI toolkit
- intermezzOS OS
- nalgebra - a linear algebra library
- OpenPGP Card
- Plotly.rs
- PNGme: An Intermediate Rust Project
- Prusti user guide - a Rust verifier
- Rama Proxy - modular services framework
- Scaphandre - a monitoring agent dedicated to energy consumption
- SeaORM - an async and dynamic ORM
- Serde - serialize and deserialize Rust data structures
- Stakker actor runtime guide - a low-level single-thread actor runtime for Rust
- Tealdeer User Manual - implementation of tldr (help like
man
, but more approachable). - The DNS Protocol
- The Nom Guide (Nominomicon) - a parser combinator library
- The Redox Operating System
- Thesus OS
- The Zebra Book