Andrew Mercer
on this page

Rust

Rust is a systems programming language focused on performance, reliability, and memory safety without a garbage collector. Its ownership model, checked at compile time, eliminates whole classes of bugs (use-after-free, double frees, data races) while still compiling to fast native code. Paired with Cargo, its build tool and package manager, it's well suited to CLIs, network services, infrastructure tooling, and anything where correctness and speed both matter.

Guides

Fundamentals

  • Understanding Ownership, Moves, and Borrowing The core mental model behind Rust: scope and drop, moves, shared and mutable references, the borrowing rules, Copy vs. Clone, slices, lifetimes, and smart pointers like Rc, Arc, and Mutex. Includes a table of the most common ownership-related compiler errors.

Troubleshooting

Architecture and design

  • Architecting Rust Projects: A Comprehensive Guide How to structure and ship Rust projects: crates, modules, and workspaces; layered architecture with traits at the boundaries; configuration, error handling, logging, and async; type-driven design, traits, iterators, and other core idioms; testing, tooling, CI, and release builds; plus common anti-patterns and a new-project checklist.

Suggested reading order

  1. Start with Ownership, Moves, and Borrowing. Nearly everything else in Rust builds on it.
  2. Keep Fixing "use of partially moved value" handy for when the borrow checker objects to a match.
  3. Read Architecting Rust Projects before starting your next non-trivial project, and use its checklist when setting one up.

External resources

in this section
* architecting rust projects: a comprehensive guide
* fixing "use of partially moved value": moving vs. borrowing in patterns
* understanding ownership, moves, and borrowing