142 lines
4.3 KiB
Markdown
142 lines
4.3 KiB
Markdown
% Rust Documentation
|
|
|
|
<style>
|
|
nav {
|
|
display: none;
|
|
}
|
|
#search-input {
|
|
width: calc(100% - 58px);
|
|
}
|
|
#search-but {
|
|
cursor: pointer;
|
|
}
|
|
#search-but, #search-input {
|
|
padding: 4px;
|
|
border: 1px solid #ccc;
|
|
border-radius: 3px;
|
|
outline: none;
|
|
font-size: 0.7em;
|
|
background-color: #fff;
|
|
}
|
|
#search-but:hover, #search-input:focus {
|
|
border-color: #55a9ff;
|
|
}
|
|
h2 {
|
|
font-size: 18px;
|
|
}
|
|
</style>
|
|
|
|
Welcome to an overview of the documentation provided by the Rust project.
|
|
All of these projects are managed by the Docs Team; there are other
|
|
unofficial documentation resources as well!
|
|
|
|
Many of these resources take the form of "books"; we collectively call these
|
|
"The Rust Bookshelf." Some are large, some are small.
|
|
|
|
# Learn Rust
|
|
|
|
If you'd like to learn Rust, this is the spot 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](book/index.html) 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 the language.
|
|
|
|
## Rust By Example
|
|
|
|
If reading multiple hundreds of pages about a language isn't your style, then
|
|
[Rust By Example](rust-by-example/index.html) has you covered. While the book talks about code with
|
|
a lot of words, RBE shows off a bunch of code, and keeps the talking to a
|
|
minimum. It also includes exercises!
|
|
|
|
## Rustlings
|
|
|
|
[Rustlings](https://github.com/rust-lang/rustlings) guides you through downloading and setting up the Rust toolchain,
|
|
and teaches you the basics of reading and writing Rust syntax. It's an
|
|
alternative to Rust by Example that works with your own environment.
|
|
|
|
# Use Rust
|
|
|
|
Once you've gotten familiar with the language, these resources can help you
|
|
when you're actually using it day-to-day.
|
|
|
|
## The Standard Library
|
|
|
|
Rust's standard library has [extensive API documentation](std/index.html),
|
|
with explanations of how to use various things, as well as example code for
|
|
accomplishing various tasks.
|
|
|
|
<div>
|
|
<form action="std/index.html" method="get">
|
|
<input id="search-input" type="search" name="search"
|
|
placeholder="Search through the standard library"/>
|
|
<button id="search-but">Search</button>
|
|
</form>
|
|
</div>
|
|
|
|
## The Edition Guide
|
|
|
|
[The Edition Guide](edition-guide/index.html) describes the Rust editions.
|
|
|
|
## The Rustc Book
|
|
|
|
[The Rustc Book](rustc/index.html) describes the Rust compiler, `rustc`.
|
|
|
|
## The Cargo Book
|
|
|
|
[The Cargo Book](cargo/index.html) is a guide to Cargo, Rust's build tool and dependency manager.
|
|
|
|
## The Rustdoc Book
|
|
|
|
[The Rustdoc Book](rustdoc/index.html) describes our documentation tool, `rustdoc`.
|
|
|
|
## Extended Error Listing
|
|
|
|
Many of Rust's errors come with error codes, and you can request extended
|
|
diagnostics from the compiler on those errors. You can also [read them
|
|
here](error-index.html), if you prefer to read them that way.
|
|
|
|
# Master Rust
|
|
|
|
Once you're quite familiar with the language, you may find these advanced
|
|
resources useful.
|
|
|
|
## The Reference
|
|
|
|
[The Reference](reference/index.html) is not a formal spec, but is more detailed and
|
|
comprehensive than the book.
|
|
|
|
## The Rustonomicon
|
|
|
|
[The Rustonomicon](nomicon/index.html) is your guidebook to the dark arts of unsafe
|
|
Rust. It's also sometimes called "the 'nomicon."
|
|
|
|
## The Unstable Book
|
|
|
|
[The Unstable Book](unstable-book/index.html) has documentation for unstable features.
|
|
|
|
## The `rustc` Contribution Guide
|
|
|
|
[The `rustc` Guide](https://rustc-dev-guide.rust-lang.org/) 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).
|
|
|
|
# Specialize Rust
|
|
|
|
When using Rust in specific domain areas, consider using the following resources tailored to each domain.
|
|
|
|
## Embedded Systems
|
|
|
|
When developing for Bare Metal or Embedded Linux systems, you may find these resources maintained by the [Embedded Working Group] useful.
|
|
|
|
[Embedded Working Group]: https://github.com/rust-embedded
|
|
|
|
### 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.
|
|
|
|
[The Embedded Rust Book]: embedded-book/index.html
|