- This is a list of summarized notes from reading The Book
- Additional helpful videos at The Rust Lang Book Video Series
- Introduction
- Installation
rustup
commands- Hello World
- Cargo
- Project - Guessing Game
- Practical project intro to programming in Rust
- High-level concepts introductions: I/O, Variables, Random Number, Crates,
Cargo.toml
,Cargo.lock
, Loop, Error Handling
- Common Programming Concepts
- Variables and Mutability
- Constants
- Shadowing
- Data Types: Scalar and Compound
- Functions
- Comments
- Control Flow:
if
-else if
-else
- Loops:
loop
,while
,for
- Ownership, Borrowing, and Slices
- Stack vs Heap
- Ownership Rules
- Variable Scope
String
Type- Memory and Allocation: Move, Clone, Copy
- Ownership and Functions
- Return Values and Scope
- References and Borrowing
- Immutable Reference and Mutable Reference
- Dangling Reference
- Rules of References
Slice
Type- Range Syntax
- String Slices
- Slice Similarities In Other Languages
- Structs and Methods
- Custom types
- Enums, Pattern Matching, and Control Flow
match
expressionif let
control flow expression
- Packages, Crates, and Modules
- Module system
- Privacy rules for organizing codes and APIs
- Common Collections Data Structures
- Standard Library
- Vectors
- Strings
- Hashmaps
- Error Handling
- Error handling philosophy
- Error handling techniques
- Generic, Traits, Lifetimes
- Code for multiple types
- Automated Tests
- Ensure program logic is correct
- Project - Command-Line
- Subset implementation of
grep
- Search texts within files
- Subset implementation of
- Iterators and Closures
- Features from functional programming
- Cargo and Crates.io
- Module system in depth
- Best practices for sharing libraries
- Smart Pointers
- Provided by standard library
- Traits for their functionality
- Concurrency and Threading
- Different models of concurrent programming
- Fearless threading in Rust
- Object-Oriented Idioms
- Idioms compared to OOP
- Patterns and Pattern Matching
- Reference for pattern matching
- Advanced Topics
- Unsafe Rust
- Macros
- Lifetimes
- Traits
- Types
- Functions
- Closures
- Project - Low-Level Multithreaded Web Server
- Apply it all
- A. Keywords
- B. Operators and Symbols
- C. Derivable Traits
- D. Useful Development Tools
- E. Rust Editions
- F. Book Translations
- G. How Rust is Made + Nightly Rust