Free. Practical. Compiler-verified.
Learn Rust
Build with Confidence
Learn ownership, borrowing, and concurrency by writing Rust. Start with small examples and finish with a command-line tool you can install and use.
No Rust experience needed. Bring a terminal and a text editor.
fn label(text: &str) -> usize {
text.len()
}
fn main() {
let original = String::from("WARN retry");
let bytes = label(&original);
let stored = original;
assert_eq!(bytes, 10);
assert_eq!(stored, "WARN retry");
}
Your learning path
Learn the basics.
Put them to work.
Each stage builds on the last. Run the examples, try the exercises, and use what you learn in a working project.
Learn the foundations
Write your first program, learn ownership, and build an event counter.
8 lessons ↗02Build reliable programs
Design functions that borrow data, handle errors, limit input, and test the results.
6 lessons ↗03Understand concurrent work
Share data safely, coordinate threads, and learn how futures and runtimes work.
6 lessons ↗04Work with systems code
Understand pinning and unsafe code, measure performance, and follow work on Rust.
6 lessons ↗05Ship and maintain
Install your tool, check its public API, and learn how to release updates.
2 lessons ↗Your final project / Fieldnotes
Build a command-line
tool you can use.
Build Fieldnotes to count event records from a file or standard input. Limit its record buffer, report errors with line numbers, and test what happens when input goes wrong.
Meet the capstone →$ printf 'INFO ready WARN retry ' | audit-cli -
INFO=1 WARN=1 ERROR=0
// Good software has a contract.
- Bounded record storage
- Errors with line numbers
- A library you can reuse
- Tests for failures, not just success
Start with one small program