Learning happens at the keyboard
The practice bench.
Every lesson has an exercise and a solution. Use these projects to practice several skills together, and the compiler drills to learn from errors.
Build checkpoints
Stage build: the first event counter
Build a working event counter with loops, matching, and borrowed text.
Stage build: a bounded streaming library
Build a library that parses records as it reads them and limits buffer growth.
Stage build: process records with async tasks
Send records through a bounded queue and keep one task in charge of the counts.
Capstone: ship Fieldnotes
Combine the parser and reader into a command-line tool you can install and use.
Read the compiler
These six small programs fail on purpose. Read the compiler error, fix the code, and compare your answer with the solution.
Ownership, places, and moves
Learn what moves, what gets copied, and when a borrow is enough.
Borrowing and reborrowing
Use shared and exclusive references, and see when a borrow ends.
Lifetimes describe relationships
Connect borrowed results to their inputs without trying to extend the life of data.
Threads, Send, and Sync
Move or borrow data across threads, then handle completion and failure.
Pin and async traits
Learn what pinning protects and how to return futures through a trait object.
Stable Rust and work in progress
Tell stable features apart from nightly experiments and plans that may change.
Try an ownership example
This card shows the tested ownership example from lesson 03.
Get the complete lab
The source repository contains every runnable example, the capstone, the unsafe lab, tests, and captured diagnostics.
Open the repository ↗cargo test --workspace --locked
npm run verify:rust