1 % The Rust Programming Language
3 Welcome! This book will teach you about the [Rust Programming Language][rust].
4 Rust is a systems programming language focused on three goals: safety, speed,
5 and concurrency. It maintains these goals without having a garbage collector,
6 making it a useful language for a number of use cases other languages aren’t
7 good at: embedding in other languages, programs with specific space and time
8 requirements, and writing low-level code, like device drivers and operating
9 systems. It improves on current languages targeting this space by having a
10 number of compile-time safety checks that produce no runtime overhead, while
11 eliminating all data races. Rust also aims to achieve ‘zero-cost abstractions’
12 even though some of these abstractions feel like those of a high-level language.
13 Even then, Rust still allows precise control like a low-level language would.
15 [rust]: https://www.rust-lang.org
17 “The Rust Programming Language” is split into eight sections. This introduction
18 is the first. After this:
20 * [Getting started][gs] - Set up your computer for Rust development.
21 * [Learn Rust][lr] - Learn Rust programming through small projects.
22 * [Effective Rust][er] - Higher-level concepts for writing excellent Rust code.
23 * [Syntax and Semantics][ss] - Each bit of Rust, broken down into small chunks.
24 * [Nightly Rust][nr] - Cutting-edge features that aren’t in stable builds yet.
25 * [Glossary][gl] - A reference of terms used in the book.
26 * [Bibliography][bi] - Background on Rust's influences, papers about Rust.
28 [gs]: getting-started.html
30 [er]: effective-rust.html
31 [ss]: syntax-and-semantics.html
32 [nr]: nightly-rust.html
34 [bi]: bibliography.html
36 After reading this introduction, you’ll want to dive into either ‘Learn Rust’ or
37 ‘Syntax and Semantics’, depending on your preference: ‘Learn Rust’ if you want
38 to dive in with a project, or ‘Syntax and Semantics’ if you prefer to start
39 small, and learn a single concept thoroughly before moving onto the next.
40 Copious cross-linking connects these parts together.
44 The source files from which this book is generated can be found on
47 [trpl]: https://github.com/rust-lang/rust/tree/master/src/doc/trpl