rust-lang/rustlings
:crab: Small exercises to get you used to reading and writing Rust code!
How rustlings is put together
Rustlings is an offline Rust learning tool: a single Cargo workspace binary (`rustlings`) plus a proc-macro support crate (`rustlings-macros`) that ships small exercises users fix locally. `main.rs` parses CLI args with clap, reads a TOML info file describing exercises, and either initializes a project (`init`), runs developer tooling (`dev`), or drives an interactive watch loop that compiles/tests the current exercise via spawned cargo processes and updates progress in a plain-text state file `.rustlings-state.txt`. There is no server, database, or network layer; data flow is local filesystem (exercise files, embedded exercise dumps) plus stdout rendering via crossterm.
Languages
Frameworks
Infrastructure
Major components
src/main.rs + src/cli.rs
Entry point that parses CLI arguments (init/dev/run/check-all/reset/hint/watch) and dispatches to subsystems.
src/app_state.rs
Holds exercise list, done/pending progress, current-exercise index, and reads/writes the `.rustlings-state.txt` state file; also resets exercises (embedded dump or `git stash`).
src/watch.rs
Interactive watch mode that recompiles/re-runs exercises on file changes using notify events.
src/cmd.rs
CmdRunner abstraction for invoking cargo/clippy/test subprocesses on exercises.
src/info_file.rs + rustlings-macros
Parses the exercise manifest (info.toml) and provides proc macros embedding exercise metadata/files into the binary.
src/embedded.rs
Embedded copies of official exercise/solution files used by init and reset.
src/init.rs
Scaffolds a new rustlings project directory (exercises/, solutions/, generated Cargo.toml).
src/dev.rs
Developer/maintainer commands for managing exercise lists and regenerating dev-Cargo.toml bins.
A quiet week with just one tiny documentation cleanup.
5 weeksWeek of 2026-08-24
Week of 2026-08-24latest
A quiet week with just one tiny documentation cleanup.
Week of 2026-08-17
Routine maintenance week focused on keeping tools and dependencies up to date.
Week of 2026-08-10
The main change was establishing a policy on AI use for contributors.
Week of 2026-08-03
Documentation fixes cleared up confusing explanations and outdated references.
Week of 2026-07-27
A busy week overhauled how learners see their checking progress and fixed several platform quirks.
Over the past five weeks, the Rustlings project focused heavily on improving how learners see their progress and how exercises are checked, with a big batch of changes in late July around progress visualization and Windows compatibility. August was quieter, mostly housekeeping: dependency updates, small documentation fixes, and a new policy on AI usage for contributions. The overall arc shows steady polish of the learning experience rather than major new features.
Week by week
2026-08-24A quiet week with just one tiny documentation cleanup.latest1 change
Docs
Typo fix in exercise solution
Corrected a minor spelling mistake in a comment inside the 'options 3' exercise solution.
2026-08-17Routine maintenance week focused on keeping tools and dependencies up to date.4 changes
Fix
Cleaned up code quality warnings
Fixed automated code-quality (clippy) warnings in the quiz3 exercise so the codebase stays tidy.
Chore
Updated website tooling
Bumped Zola, the tool that builds the project's website, to a newer version.
Fix
Removed deprecation warning
Addressed a warning about using an outdated feature so future updates go smoothly.
Chore
Updated dependencies
Refreshed the external libraries the project relies on to their latest versions.
2026-08-10The main change was establishing a policy on AI use for contributors.1 change
Docs
Added LLM usage policy
Published guidelines explaining how contributors may or may not use AI language models when contributing to the project.
2026-08-03Documentation fixes cleared up confusing explanations and outdated references.3 changes
Fix
Fixed stale exercise references
Updated places in the materials that pointed to exercises that had been renamed or removed.
Docs
Improved conversions3 explanation
Rewrote the explanation text for the conversions3 exercise to be clearer while preserving its original wording where it mattered.
Chore
Updated website tooling
Bumped the Zola website builder to a newer version.
2026-07-27A busy week overhauled how learners see their checking progress and fixed several platform quirks.6 changes
Feature
New check progress visualization
Added a clearer visual display showing learners what's happening while their exercises are being checked.
Feature
Auto-check when finishing an exercise
When someone completes an exercise without marking it done, the app now automatically re-runs all checks instead of requiring manual input.
Feature
Command timeout added
Checks that hang now stop automatically after a set time instead of running forever.
Fix
Windows test detection fix
Fixed a problem where tests inside exercises weren't detected correctly on Windows computers.
Refactor
Simplified run requirements
Removed the requirement to verify that every exercise actually runs, streamlining the checking process.
Fix
Hints and messages support
Enabled processing of hints and messages stored in the info file, making guidance richer for learners.
Dependencies and code review
Dependency advisories
Security Watch
No known advisories across 0 scanned dependencies.
No known advisories in the scanned dependencies.
Code review
No concrete code-level issues confirmed.
Get this report every week for your repos.
GitZoid learns each repo, reports what changed, and flags what needs attention. One flat price for the whole team.
$19 a month, flat · First 10 outputs free · No card required