rust/src/doc/book
2015-12-30 09:24:24 -05:00
..
advanced-linking.md
associated-constants.md
associated-types.md
attributes.md
benchmark-tests.md
bibliography.md
borrow-and-asref.md
box-syntax-and-patterns.md
casting-between-types.md Rollup merge of #30114 - sourcefrog:doc-casts2, r=Manishearth 2015-11-30 18:02:21 -05:00
choosing-your-guarantees.md book: Replace "an &mut" with "a mut". Fixes #30568 2015-12-29 23:13:23 +02:00
closures.md
comments.md
compiler-plugins.md move librustc/plugin to librustc_plugin 2015-11-26 18:22:39 +02:00
concurrency.md Uses unwrap instead of pattern matching 2015-12-05 15:01:05 -08:00
conditional-compilation.md
const-and-static.md
crates-and-modules.md
custom-allocators.md std: Stabilize APIs for the 1.6 release 2015-12-05 15:09:44 -08:00
deref-coercions.md
dining-philosophers.md book: miscellaneous improvements to "dining philosophers" example 2015-11-26 00:21:23 +02:00
documentation.md Revert to colon. The text is introducing a list. 2015-12-21 16:24:17 +13:00
drop.md
effective-rust.md
enums.md Grammar changes for readability 2015-12-09 10:07:02 -08:00
error-handling.md Change the typo 'that' to 'than' in the book error-handling chapter. 2015-12-27 00:24:45 -06:00
ffi.md doc(book/ffi): remove duplicate link reference `[libc]' 2015-11-28 16:58:39 +11:00
functions.md
generics.md
getting-started.md book: Update Tier 2 platforms 2015-12-10 11:50:20 -08:00
glossary.md
guessing-game.md Rollup merge of #30154 - salty-horse:guessing_panic, r=steveklabnik 2015-12-01 19:01:42 -05:00
if-let.md Shifted focus of while-let example per review. 2015-11-27 10:23:58 -06:00
if.md
inline-assembly.md
intrinsics.md
iterators.md
lang-items.md std: Stabilize APIs for the 1.6 release 2015-12-05 15:09:44 -08:00
learn-rust.md
lifetimes.md book: Replace "an &mut" with "a mut". Fixes #30568 2015-12-29 23:13:23 +02:00
loops.md Fix typo 2015-12-04 12:32:36 -05:00
macros.md Rollup merge of #30405 - durka:patch-12, r=steveklabnik 2015-12-29 15:55:09 -05:00
match.md Correct line wrap 2015-12-21 16:20:20 +13:00
method-syntax.md
mutability.md
nightly-rust.md
no-stdlib.md Update no-stdlib.md 2015-12-19 09:19:05 +01:00
operators-and-overloading.md
ownership.md
patterns.md Update patterns.md 2015-12-21 16:20:56 +13:00
primitive-types.md
raw-pointers.md
README.md change link on book front page trpl -> book 2015-11-21 07:49:38 +08:00
references-and-borrowing.md book: Replace "an &mut" with "a mut". Fixes #30568 2015-12-29 23:13:23 +02:00
release-channels.md
rust-inside-other-languages.md
slice-patterns.md
strings.md
structs.md Fixes from review 2015-12-09 13:25:53 -08:00
SUMMARY.md Re-order the sections in TRPL 2015-12-08 15:14:56 -05:00
syntax-and-semantics.md
syntax-index.md book: Some operator fixes for the syntax index 2015-12-24 00:41:10 +01:00
testing.md book: Add missing punctuation 2015-12-11 18:18:13 +02:00
the-stack-and-the-heap.md Used bold and italic in the markdown to make the stack and heap documentation clearer 2015-12-16 20:54:02 +00:00
trait-objects.md
traits.md Update traits.md 2015-12-08 14:56:42 -08:00
type-aliases.md book: Provide link to tuple structs in type aliases chapter 2015-12-02 10:47:53 +06:00
ufcs.md
unsafe.md
unsized-types.md
variable-bindings.md
vectors.md Document bounds checking in the book 2015-12-11 06:18:18 -08:00

% The Rust Programming Language

Welcome! This book will teach you about the Rust Programming Language. Rust is a systems programming language focused on three goals: safety, speed, and concurrency. It maintains these goals without having a garbage collector, making it a useful language for a number of use cases other languages arent good at: embedding in other languages, programs with specific space and time requirements, and writing low-level code, like device drivers and operating systems. It improves on current languages targeting this space by having a number of compile-time safety checks that produce no runtime overhead, while eliminating all data races. Rust also aims to achieve zero-cost abstractions even though some of these abstractions feel like those of a high-level language. Even then, Rust still allows precise control like a low-level language would.

“The Rust Programming Language” is split into eight sections. This introduction is the first. After this:

  • Getting started - Set up your computer for Rust development.
  • Learn Rust - Learn Rust programming through small projects.
  • Effective Rust - Higher-level concepts for writing excellent Rust code.
  • Syntax and Semantics - Each bit of Rust, broken down into small chunks.
  • Nightly Rust - Cutting-edge features that arent in stable builds yet.
  • Glossary - A reference of terms used in the book.
  • Bibliography - Background on Rust's influences, papers about Rust.

After reading this introduction, youll want to dive into either Learn Rust or Syntax and Semantics, depending on your preference: Learn Rust if you want to dive in with a project, or Syntax and Semantics if you prefer to start small, and learn a single concept thoroughly before moving onto the next. Copious cross-linking connects these parts together.

Contributing

The source files from which this book is generated can be found on GitHub.