# Other Rust Resources The Rust community has created a wealth of high-quality and free resources online. ## Official Documentation The Rust project hosts many resources. These cover Rust in general: - [The Rust Programming Language](https://doc.rust-lang.org/book/): the canonical free book about Rust. Covers the language in detail and includes a few projects for people to build. - [Rust By Example](https://doc.rust-lang.org/rust-by-example/): covers the Rust syntax via a series of examples which showcase different constructs. Sometimes includes small exercises where you are asked to expand on the code in the examples. - [Rust Standard Library](https://doc.rust-lang.org/std/): full documentation of the standard library for Rust. - [The Rust Reference](https://doc.rust-lang.org/reference/): an incomplete book which describes the Rust grammar and memory model. More specialized guides hosted on the official Rust site: - [The Rustonomicon](https://doc.rust-lang.org/nomicon/): covers unsafe Rust, including working with raw pointers and interfacing with other languages (FFI). - [Asynchronous Programming in Rust](https://rust-lang.github.io/async-book/): covers the new asynchronous programming model which was introduced after the Rust Book was written. - [The Embedded Rust Book](https://doc.rust-lang.org/stable/embedded-book/): an introduction to using Rust on embedded devices without an operating system. ## Unofficial Learning Material A small selection of other guides and tutorial for Rust: - [Learn Rust the Dangerous Way](http://cliffle.com/p/dangerust/): covers Rust from the perspective of low-level C programmers. - [Rust for Embedded C Programmers](https://opentitan.org/book/doc/rust_for_c_devs.html): covers Rust from the perspective of developers who write firmware in C. - [Rust for professionals](https://overexact.com/rust-for-professionals/): covers the syntax of Rust using side-by-side comparisons with other languages such as C, C++, Java, JavaScript, and Python. - [Rust on Exercism](https://exercism.org/tracks/rust): 100+ exercises to help you learn Rust. - [Ferrous Teaching Material](https://ferrous-systems.github.io/teaching-material/index.html): a series of small presentations covering both basic and advanced part of the Rust language. Other topics such as WebAssembly, and async/await are also covered. - [Advanced testing for Rust applications](https://rust-exercises.com/advanced-testing/): a self-paced workshop that goes beyond Rust's built-in testing framework. It covers `googletest`, snapshot testing, mocking as well as how to write your own custom test harness. - [Beginner's Series to Rust](https://docs.microsoft.com/en-us/shows/beginners-series-to-rust/) and [Take your first steps with Rust](https://docs.microsoft.com/en-us/learn/paths/rust-first-steps/): two Rust guides aimed at new developers. The first is a set of 35 videos and the second is a set of 11 modules which covers Rust syntax and basic constructs. - [Learn Rust With Entirely Too Many Linked Lists](https://rust-unofficial.github.io/too-many-lists/): in-depth exploration of Rust's memory management rules, through implementing a few different types of list structures. Please see the [Little Book of Rust Books](https://lborb.github.io/book/) for even more Rust books.