.. | ||
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 | ||
choosing-your-guarantees.md | ||
closures.md | ||
comments.md | ||
compiler-plugins.md | ||
concurrency.md | ||
conditional-compilation.md | ||
const-and-static.md | ||
crates-and-modules.md | ||
custom-allocators.md | ||
deref-coercions.md | ||
documentation.md | ||
drop.md | ||
effective-rust.md | ||
enums.md | ||
error-handling.md | ||
ffi.md | ||
functions.md | ||
generics.md | ||
getting-started.md | ||
glossary.md | ||
guessing-game.md | ||
if-let.md | ||
if.md | ||
inline-assembly.md | ||
intrinsics.md | ||
iterators.md | ||
lang-items.md | ||
learn-rust.md | ||
lifetimes.md | ||
loops.md | ||
macros.md | ||
match.md | ||
method-syntax.md | ||
mutability.md | ||
nightly-rust.md | ||
no-stdlib.md | ||
operators-and-overloading.md | ||
ownership.md | ||
patterns.md | ||
primitive-types.md | ||
raw-pointers.md | ||
README.md | ||
references-and-borrowing.md | ||
release-channels.md | ||
slice-patterns.md | ||
strings.md | ||
structs.md | ||
SUMMARY.md | ||
syntax-and-semantics.md | ||
syntax-index.md | ||
testing.md | ||
the-stack-and-the-heap.md | ||
trait-objects.md | ||
traits.md | ||
type-aliases.md | ||
ufcs.md | ||
unsafe.md | ||
unsized-types.md | ||
using-rust-without-the-standard-library.md | ||
variable-bindings.md | ||
vectors.md |
% 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 aren’t 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 chapters. This introduction is the first. After this:
- Getting started - Set up your computer for Rust development.
- Tutorial: Guessing Game - Learn some Rust with a small project.
- Syntax and Semantics - Each bit of Rust, broken down into small chunks.
- Effective Rust - Higher-level concepts for writing excellent Rust code.
- Nightly Rust - Cutting-edge features that aren’t in stable builds yet.
- Glossary - A reference of terms used in the book.
- Bibliography - Background on Rust's influences, papers about Rust.
Contributing
The source files from which this book is generated can be found on GitHub.