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 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 aren’t 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, you’ll 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.