]> git.lizzy.rs Git - rust.git/blob - src/doc/index.md
Rollup merge of #107486 - compiler-errors:bound-ty-keep-name, r=oli-obk
[rust.git] / src / doc / index.md
1 % Rust Documentation
2
3 <style>
4 nav {
5     display: none;
6 }
7 #search-input {
8     width: calc(100% - 58px);
9 }
10 #search-but {
11     cursor: pointer;
12 }
13 #search-but, #search-input {
14     padding: 4px;
15     border: 1px solid #ccc;
16     border-radius: 3px;
17     outline: none;
18     font-size: 0.7em;
19     background-color: #fff;
20 }
21 #search-but:hover, #search-input:focus {
22     border-color: #55a9ff;
23 }
24 h2 {
25     font-size: 18px;
26 }
27 </style>
28
29 Welcome to an overview of the documentation provided by the [Rust project].
30 All of these projects are managed by the Docs Team; there are other
31 unofficial documentation resources as well!
32
33 Many of these resources take the form of "books"; we collectively call these
34 "The Rust Bookshelf." Some are large, some are small.
35
36 # Learn Rust
37
38 If you'd like to learn Rust, this is the spot for you! All of these resources
39 assume that you have programmed before, but not in any specific language:
40
41 ## The Rust Programming Language
42
43 Affectionately nicknamed "the book," [The Rust Programming
44 Language](book/index.html) will give you an overview of the language from
45 first principles. You'll build a few projects along the way, and by the end,
46 you'll have a solid grasp of the language.
47
48 ## Rust By Example
49
50 If reading multiple hundreds of pages about a language isn't your style, then
51 [Rust By Example](rust-by-example/index.html) has you covered. While the book talks about code with
52 a lot of words, RBE shows off a bunch of code, and keeps the talking to a
53 minimum. It also includes exercises!
54
55 ## Rustlings
56
57 [Rustlings](https://github.com/rust-lang/rustlings) guides you through downloading and setting up the Rust toolchain,
58 and teaches you the basics of reading and writing Rust syntax. It's an
59 alternative to Rust by Example that works with your own environment.
60
61 # Use Rust
62
63 Once you've gotten familiar with the language, these resources can help you
64 when you're actually using it day-to-day.
65
66 ## The Standard Library
67
68 Rust's standard library has [extensive API documentation](std/index.html),
69 with explanations of how to use various things, as well as example code for
70 accomplishing various tasks.
71
72 <div>
73   <form action="std/index.html" method="get">
74     <input id="search-input" type="search" name="search"
75            placeholder="Search through the standard library"/>
76     <button id="search-but">Search</button>
77   </form>
78 </div>
79
80 ## The Edition Guide
81
82 [The Edition Guide](edition-guide/index.html) describes the Rust editions.
83
84 ## The Rustc Book
85
86 [The Rustc Book](rustc/index.html) describes the Rust compiler, `rustc`.
87
88 ## The Cargo Book
89
90 [The Cargo Book](cargo/index.html) is a guide to Cargo, Rust's build tool and dependency manager.
91
92 ## The Rustdoc Book
93
94 [The Rustdoc Book](rustdoc/index.html) describes our documentation tool, `rustdoc`.
95
96 ## The Clippy Book
97
98 [The Clippy Book](clippy/index.html) describes our static analyzer, Clippy.
99
100 ## Extended Error Listing
101
102 Many of Rust's errors come with error codes, and you can request extended
103 diagnostics from the compiler on those errors. You can also [read them
104 here](error_codes/index.html), if you prefer to read them that way.
105
106 # Master Rust
107
108 Once you're quite familiar with the language, you may find these advanced
109 resources useful.
110
111 ## The Reference
112
113 [The Reference](reference/index.html) is not a formal spec, but is more detailed and
114 comprehensive than the book.
115
116 ## The Style Guide
117
118 [The Rust Style Guide](style-guide/index.html) describes the standard formatting of Rust
119 code. Most developers use rustfmt to format their code, and rustfmt's default
120 formatting matches this style guide.
121
122 ## The Rustonomicon
123
124 [The Rustonomicon](nomicon/index.html) is your guidebook to the dark arts of unsafe
125 Rust. It's also sometimes called "the 'nomicon."
126
127 ## The Unstable Book
128
129 [The Unstable Book](unstable-book/index.html) has documentation for unstable features.
130
131 ## The `rustc` Contribution Guide
132
133 [The `rustc` Guide](https://rustc-dev-guide.rust-lang.org/) documents how
134 the compiler works and how to contribute to it. This is useful if you want to build
135 or modify the Rust compiler from source (e.g. to target something non-standard).
136
137 # Specialize Rust
138
139 When using Rust in specific domain areas, consider using the following resources tailored to each domain.
140
141 ## Embedded Systems
142
143 When developing for Bare Metal or Embedded Linux systems, you may find these resources maintained by the [Embedded Working Group] useful.
144
145 [Embedded Working Group]: https://github.com/rust-embedded
146
147 ### The Embedded Rust Book
148
149 [The Embedded Rust Book] is targeted at developers familiar with embedded development and familiar with Rust, but have not used Rust for embedded development.
150
151 [The Embedded Rust Book]: embedded-book/index.html
152 [Rust project]: https://www.rust-lang.org