Rust Exercises

Strengthen your Rust skills with hands-on coding exercises and realistic challenges. Progress from basic syntax and data structures to ownership, borrowing, lifetimes, traits, error handling, and concurrency while learning to write safe and efficient programs.

Personalize the Welcome Program

Personalize the Welcome Program

Practice the edit, check, and run workflow by completing a prepared Rust welcome program.
ChallengeRust
Your First Cargo Project

Your First Cargo Project

Learn the terminal, nano, and the basic Cargo workflow while completing and running a small Rust program.
LabRust
Build a Temperature Report

Build a Temperature Report

Complete a prepared Rust temperature report by combining a variable, arithmetic, numeric conversion, and formatted output.
ChallengeRust
Variables and Simple Values

Variables and Simple Values

Build a small measurement report while learning Rust variables, mutability, simple value types, arithmetic, conversion, and formatted output.
LabRust
Scale a Recipe

Scale a Recipe

Complete one reusable Rust function that scales prepared ingredient amounts for a new serving count.
ChallengeRust
Functions and Expressions

Functions and Expressions

Complete three small Rust functions to learn parameters, arguments, return types, expression returns, and reusable function calls.
LabRust
Plan Shipping Orders

Plan Shipping Orders

Complete three focused decisions in a prepared Rust order planner that combines a function, conditions, a range loop, and running totals.
ChallengeRust
Make Decisions and Repeat Work

Make Decisions and Repeat Work

Build a small shipping summary while learning comparisons, if expressions, for loops, inclusive ranges, and running totals in Rust.
LabRust
Recover the Parcel Tracker

Recover the Parcel Tracker

Repair a Rust parcel tracker that uses a String after it moves, preserving its returned ownership without cloning.
ChallengeRust
Ownership, Scope, and Moves

Ownership, Scope, and Moves

Learn Rust ownership by comparing copied integers with moved String data, reading an intentional E0382 diagnostic, and returning ownership from a function.
LabRust
Update a Guest List Safely

Update a Guest List Safely

Repair a guest-list program so one function borrows for inspection and another borrows for controlled mutation.
ChallengeRust
Borrow Data with References

Borrow Data with References

Learn to inspect and update owned Rust data with shared and mutable references while the caller keeps ownership.
LabRust
Extract Command Keywords

Extract Command Keywords

Complete a borrowed string-slice helper that extracts the first keyword from empty, single-word, and multi-word commands.
ChallengeRust
Work with Strings and Slices

Work with Strings and Slices

Relate owned String values to borrowed &str views, create safe substrings, and understand UTF-8 boundaries.
LabRust
Complete the Library Catalog

Complete the Library Catalog

Complete a Book constructor and checkout method so a catalog preserves owned titles and enforces one successful checkout.
ChallengeRust