Build a CLI tool
A command-line HTTP client with subcommands, a config file and real error messages. Start the track →
Reading about ownership is not the same as shipping something. Each track here is a series of articles that ends with a working thing: a tool you can install, a service you can deploy, firmware running on real hardware.
Tracks assume you know the basics. If you have not written any Rust yet, install it from rustup.rs, work through Ownership and borrowing and the bits that trip everyone up, then come back.
Build a CLI tool
A command-line HTTP client with subcommands, a config file and real error messages. Start the track →
A production API with Axum and SQLx
Postgres migrations, validation, tracing, integration tests, Docker, deployment. Start the track →
A desktop app with Tauri
A local Markdown notes app: React front end, Rust core, SQLite, full-text search. Start the track →
Speed up React with WebAssembly
Move the slow part of a JavaScript app into Rust and measure the real difference. Start the track →
Embedded Rust on STM32
From blinking an LED to I2C sensors, async tasks and power management. Start the track →
Write a toy database
A persistent log-structured key-value store, with compaction and benchmarks. Start the track →
Each article is one step, and every step ends with code that runs. The code for every track lives in the examples repository, in a directory named after the track, and each article links to the tag that matches the state of the code at that point — so you can check your work against it instead of guessing where you went wrong.
git clone https://github.com/hackingwithrust/examplescd examples/cli-toolgit checkout cli-ch04 # the state of the project after article 4If you get stuck, the compiler error pages cover the errors these projects actually produce.