Skip to content

Appendix C: Further Resources

A curated collection of resources for continuing your Rust journey, organized by category.

  • The Rust Programming Language: The official book, commonly called “the Book.” Covers the language from basics through advanced topics. Free and regularly updated.

  • Rust Reference: A detailed reference for Rust’s syntax, semantics, and memory model. More precise than the Book, useful when you need definitive answers about language behavior.

  • Rust by Example: Learn Rust through annotated, runnable examples. Each concept is illustrated with minimal code that you can modify and run in the browser.

  • Standard Library Documentation: Comprehensive API reference for the standard library. The documentation is excellent – many entries include usage examples and links to related items.

  • The Cargo Book: Reference for Cargo, Rust’s package manager and build system. Covers manifest format, dependency management, workspaces, and custom build scripts.

  • Rust Edition Guide: Explains the differences between Rust editions (2015, 2018, 2021, 2024) and how to migrate between them.

  • Rustlings: Small exercises that guide you through reading and writing Rust code. Covers the core language features progressively, with compiler-driven hints to help you fix each exercise.

  • Exercism Rust Track: Practice problems with mentor feedback. The exercises progress from simple to complex, and each one is designed to teach a specific language feature or idiom.

  • Comprehensive Rust by Google: A multi-day course originally developed for Google engineers. Covers Rust fundamentals, error handling, unsafe code, concurrency, and Android-specific topics. Well-structured for self-study.

  • Rust Design Patterns: A catalog of idiomatic Rust patterns, anti-patterns, and idioms. Useful once you know the basics and want to write more natural Rust code.

  • The Rustonomicon: The “dark arts” of unsafe Rust. Covers raw pointers, transmute, drop semantics, and other topics you need to understand for FFI and low-level programming.

  • Rust Users Forum: The official forum for questions, discussion, and announcements. Welcoming to beginners and a good place to ask questions that are too open-ended for Stack Overflow.

  • Rust Subreddit: Active community for news, project announcements, and discussion. A good source for staying current with the ecosystem.

  • Rust Discord: Real-time chat with dedicated channels for beginners, help, and specific topics like async, WebAssembly, and embedded development.

  • This Week in Rust: A weekly newsletter summarizing notable changes, new crates, RFCs, upcoming events, and community blog posts. The best way to stay informed about the ecosystem.

  • crates.io: The official Rust package registry. Browse, search, and evaluate crates by download counts, documentation quality, and maintenance activity.

  • lib.rs: An alternative crate index with better categorization and search. Useful for discovering crates by category or comparing alternatives.

  • WebAssembly Component Model: Documentation for the Component Model, which defines how Wasm modules compose with typed interfaces. Covers WIT, the interface definition language, and the architecture of components.

  • WASI Documentation: Overview and specification for the WebAssembly System Interface, which provides standardized access to filesystem, networking, and other system capabilities from Wasm modules.

  • Bytecode Alliance: A major steward of Wasm tooling outside the browser. Hosts Wasmtime, wasm-tools, wit-bindgen, and other foundational projects.

  • Wasmtime Documentation: Reference for Wasmtime, a fast and secure Wasm runtime. Covers embedding the runtime in Rust applications, WASI configuration, and Component Model support.

  • wasm-pack: A tool for building Rust code as Wasm packages for the web. Handles compilation, binding generation, and npm packaging in one step.

  • cargo-component: A Cargo subcommand for building Wasm components using the Component Model. Integrates WIT definitions and binding generation into the standard Cargo workflow.

  • rust-analyzer: The official language server for Rust. Provides IDE features – code completion, go-to-definition, inline type hints, and refactoring – in VS Code, Neovim, and other editors. (Comparable to SourceKit-LSP for Swift.)

  • Clippy: A collection of lints that catch common mistakes, suggest idiomatic alternatives, and enforce best practices. Run with cargo clippy. (Comparable to SwiftLint.)

  • rustfmt: The official code formatter. Run with cargo fmt to apply the community-standard style. Configurable via rustfmt.toml. (Comparable to swift-format.)

  • cargo-expand: Shows the result of macro expansion for your code. Invaluable for understanding what derive macros and other macros generate.

  • Miri: An interpreter that detects undefined behavior in Rust programs – including memory errors, data races, and violations of Stacked Borrows rules. Run with cargo miri test. Useful for validating unsafe code.

  • Programming Rust by Jim Blandy, Jason Orendorff, and Leonora Tindall (O’Reilly, 2nd edition): A thorough treatment of Rust aimed at experienced systems programmers. Covers ownership, concurrency, unsafe code, and FFI in depth. One of the most comprehensive Rust books available.

  • Rust in Action by Tim McNamara (Manning): A project-oriented introduction that teaches Rust through building real programs – a CPU emulator, a database, a network client, and more. Good for developers who learn best by building.

  • Rust for Rustaceans by Jon Gjengset (No Starch Press): An intermediate-to-advanced book covering topics like designing public APIs, unsafe patterns, asynchronous programming, and performance. Best read after you are comfortable with the basics and want to deepen your understanding.