Resources
This guide is aimed at developers and project managers already comfortable with the Rust programming language. It does not cover any fundamentals of the language itself, only how to structure projects.
If you feel that you need to refresh your Rust basics, I recommend you to read or work through some of these resources. You do not need to work through all of them, the guide merely assumes some foundational knowledge.
Books
Below is a list of essential readings for grasping the intricacies of Rust. Throughout this guide, where relevant, I will provide links to specific chapters from these books. This will enable you to explore topics more thoroughly and deepen your understanding as needed.
Rust Programming Language, 2nd Edition by Steve Klabnik and Carol Nichols (available from No Starch Press and online) is the official guide to Rust.
Rust for Rustaceans by Jon Gjengset (available from No Starch Press) is a deep dive into the Rust programming language.
Rust Design Patterns (available online) is a catalogue of Rust design patterns, anti-patterns and idioms.
Software Engineering at Google (available online and from O’Reilly)
Interactive
Some people, including myself, enjoy learning new things through interactive exploration. These resources teach Rust concepts primarily in such a way.
Zero to Production by Luca Palmieri (available online) an introduction to backend development in Rust.
Rust Adventure by Chris Biscardi (available online) is collection of interactive courses that teaches you how to build things in Rust through a set of workshops. |
CodeCrafters Available online. While not specific to Rust, CodeCrafters has a growing number of courses that are all built around the idea of reimplementing popular software yourself. Some of the courses they have are Build your own Git, Build your own Redis, and Build your own SQLite, to name but a few. What makes the courses fun is that they are broken down into small steps and come with unit tests that allow you to test your implementation as your progress.
Articles
Some people in the Rust community have written articles and guides with a similar scope as this book. While some of the takes may be different from those presented in this book, it can be valuable to review these to see which conclusions others in the Rust community have arrived at.
Writing Software that’s reliable enough for production by Sciagraph
Sciagraph is a profiler for Python data processing pipelines. In this blog post, they explain how they approach writing software that is reliable, with some very similar approaches as this guide recommends.
One Hundred Thousand Lines of Rust by Alex Kladov
Alex Kladov is the driving force behind several high-profile projects in the Rust community, such as rust-analyzer. In this article, he explains lessons he has learned from maintaining several medium-sized Rust projects.
Basic Things by Alex Kladov
Alex argues for some basic properties of software projects. He discusses how getting these right can be a force-multiplier as projects grow in scope, developers and users.
My Ideal Rust Workflow by fasterthanlime
Chapter 5: Continuous Deployment for Rust Applications in Zero to Production
Good Practises for Writing Rust Libraries by pascalhertleif (published in 2015)
Issue #5656: Expand “CI Best Practises” section in the guide in rustlang/cargo
Videos
Setting up CI and property testing for a Rust crate by Jon Gjengset
In this video, Jon shows how to set up a CI pipeline and property testing for a crate he has authored. This primer explains a lot of the things he does here and why he does them. This stream is worth watching if you are interested in watching the process of getting useful testing setup for a project.