This is a workaround for #101714 on top of being a useful addition in its own right. It is intended to change the "canonical URL" for viewing the release notes from GitHub, which is relatively slow, to a pre-rendered HTML file that loads from the same CDN as the standard library docs. It also means you get a copy of the release notes when installing the rust-docs with rustup.
7.6 KiB
% Rust Documentation
Welcome to an overview of the documentation provided by the Rust
project. This page contains links to various helpful references,
most of which are available offline (if opened with rustup doc
). Many of these
resources take the form of "books"; we collectively call these "The Rust
Bookshelf." Some are large, some are small.
All of these books are managed by the Rust Organization, but other unofficial documentation resources are included here as well!
If you're just looking for the standard library reference, here it is: Rust API documentation
Learning Rust
If you'd like to learn Rust, this is the section for you! All of these resources assume that you have programmed before, but not in any specific language:
The Rust Programming Language
Affectionately nicknamed "the book," The Rust Programming Language will give you an overview of the language from first principles. You'll build a few projects along the way, and by the end, you'll have a solid grasp of how to use the language.
Rust By Example
If reading multiple hundreds of pages about a language isn't your style, then Rust By Example has you covered. RBE shows off a bunch of code without using a lot of words. It also includes exercises!
Rustlings
Rustlings guides you through downloading and setting up the Rust toolchain, then provides an interactive tool that teaches you how to solve coding challenges in Rust.
Rust Playground
The Rust Playground is a great place to try out and share small bits of code, or experiment with some of the most popular crates.
Using Rust
Once you've gotten familiar with the language, these resources can help you put it to work.
The Standard Library
Rust's standard library has extensive API documentation, with explanations of how to use various things, as well as example code for accomplishing various tasks. Code examples have a "Run" button on hover that opens the sample in the playground.
Your Personal Documentation
Whenever you are working in a crate, cargo doc --open
will generate
documentation for your project and all its dependencies in their correct
version, and open it in your browser. Add the flag --document-private-items
to
also show items not marked pub
.
Rust Version History
The Release Notes describes the change history of the Rust toolchain and language.
The Edition Guide describes the Rust editions and their differences. The latest version of the toolchain supports all historical editions.
The rustc
Book
The rustc
Book describes the Rust compiler, rustc
.
The Cargo Book
The Cargo Book is a guide to Cargo, Rust's build tool and dependency manager.
The Rustdoc Book
The Rustdoc Book describes our documentation tool, rustdoc
.
The Clippy Book
The Clippy Book describes our static analyzer, Clippy.
Extended Error Listing
Many of Rust's errors come with error codes, and you can request extended
diagnostics from the compiler on those errors (with rustc --explain
). You can
also read them here if you prefer: rustc error codes
Mastering Rust
Once you're quite familiar with the language, you may find these advanced resources useful.
The Reference
The Reference is not a formal spec, but is more detailed and comprehensive than the book.
The Style Guide
The Rust Style Guide describes the standard formatting
of Rust code. Most developers use cargo fmt
to invoke rustfmt
and format the
code automatically (the result matches this style guide).
The Rustonomicon
The Rustonomicon is your guidebook to the dark arts of unsafe Rust. It's also sometimes called "the 'nomicon."
The Unstable Book
The Unstable Book has documentation for unstable features.
The rustc
Contribution Guide
The rustc
Guide
documents how the compiler works and how to contribute to it. This is useful if
you want to build or modify the Rust compiler from source (e.g. to target
something non-standard).
Specialized Rust
When using Rust in specific domains, consider using the following resources tailored to each area.
Embedded Systems
When developing for Bare Metal or Embedded Linux systems, you may find these resources maintained by the Embedded Working Group useful.
The Embedded Rust Book
The Embedded Rust Book is targeted at developers familiar with embedded development and familiar with Rust, but have not used Rust for embedded development.