Step by step, we will create a practical CLI tool for website monitoring. Starting with an empty Cargo project, we will add an HTTP client, move to async with Tokio, introduce a polling loop with latency tracking, add robust error handling, and finish with user-configurable command-line arguments through clap.
Along the way, we will cover core Rust concepts — crates, async/await, the Result type, pattern matching, and derive macros — in the context of a tool that you can actually use.