Rust / the practical course

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.

src/main.rs
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");
}
28focused lessons
25runnable examples
6compiler drills
1tool you can ship

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.

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

Write your first Rust program.

Begin lesson 01 →

Find a lesson