Rust Free Labs
Practice Rust for free in interactive labs. Write and run code while exploring syntax, ownership, borrowing, lifetimes, error handling, and concurrency in a safe Rust playground.
Personalize the Welcome Program
Practice the edit, check, and run workflow by completing a prepared Rust welcome program.
ChallengeRust
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
Complete a prepared Rust temperature report by combining a variable, arithmetic, numeric conversion, and formatted output.
ChallengeRust
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
Complete one reusable Rust function that scales prepared ingredient amounts for a new serving count.
ChallengeRust
Functions and Expressions
Complete three small Rust functions to learn parameters, arguments, return types, expression returns, and reusable function calls.
LabRust
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
Build a small shipping summary while learning comparisons, if expressions, for loops, inclusive ranges, and running totals in Rust.
LabRust
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
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
Repair a guest-list program so one function borrows for inspection and another borrows for controlled mutation.
ChallengeRust
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
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
Relate owned String values to borrowed &str views, create safe substrings, and understand UTF-8 boundaries.
LabRust
Complete the Library Catalog
Complete a Book constructor and checkout method so a catalog preserves owned titles and enforces one successful checkout.
ChallengeRust