]> git.lizzy.rs Git - rust.git/blob - src/doc/tarpl/README.md
4159b57ce533ab78ada7b087c126db80a95d193d
[rust.git] / src / doc / tarpl / README.md
1 % The Advanced Rust Programming Language
2
3 # NOTE: This is a draft document, and may contain serious errors
4
5 So you've played around with Rust a bit. You've written a few simple programs
6 and you think you grok the basics. Maybe you've even read through *[The Rust
7 Programming Language][trpl]* (TRPL). Now you want to get neck-deep in all the
8 nitty-gritty details of the language. You want to know those weird corner-cases.
9 You want to know what the heck `unsafe` really means, and how to properly use
10 it. This is the book for you.
11
12 To be clear, this book goes into *serious* detail. We're going to dig into
13 exception-safety and pointer aliasing. We're going to talk about memory
14 models. We're even going to do some type-theory. This is stuff that you
15 absolutely *don't* need to know to write fast and safe Rust programs.
16 You could probably close this book *right now* and still have a productive
17 and happy career in Rust.
18
19 However if you intend to write unsafe code -- or just *really* want to dig into
20 the guts of the language -- this book contains *invaluable* information.
21
22 Unlike TRPL we will be assuming considerable prior knowledge. In particular, you
23 should be comfortable with basic systems programming and basic Rust. If you
24 don't feel comfortable with these topics, you should consider [reading
25 TRPL][trpl], though we will not be assuming that you have. You can skip
26 straight to this book if you want; just know that we won't be explaining
27 everything from the ground up.
28
29 Due to the nature of advanced Rust programming, we will be spending a lot of
30 time talking about *safety* and *guarantees*. In particular, a significant
31 portion of the book will be dedicated to correctly writing and understanding
32 Unsafe Rust.
33
34 [trpl]: ../book/