- Notifications
You must be signed in to change notification settings - Fork10.5k
🦀 Small exercises to get you used to reading and writing Rust code!
License
rust-lang/rustlings
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Greetings and welcome to Rustlings.This project contains small exercises to get you used to reading and writing Rust code.This includes reading and responding to compiler messages!
It is recommended to do the Rustlings exercises in parallel to readingthe official Rust book, the most comprehensive resource for learning Rust 📚️
Rust By Example is another recommended resource that you might find helpful.It contains code examples and exercises similar to Rustlings, but online.
Before installing Rustlings, you need to have thelatest version of Rust installed.Visitwww.rust-lang.org/tools/install for further instructions on installing Rust.This will also installCargo, Rust's package/project manager.
🐧 If you are on Linux, make sure you have installed
gcc
(for a linker).Deb:
sudo apt install gcc
Dnf:
sudo dnf install gcc
🍎 If you are on MacOS, make sure you have installed Xcode and its developer tools by running
xcode-select --install
.
The following command will download and compile Rustlings:
cargo install rustlings
If the installation fails… (click to expand)
- Make sure you have the latest Rust version by running
rustup update
- Try adding the
--locked
flag:cargo install rustlings --locked
- Otherwise, pleasereport the issue
After installing Rustlings, run the following command to initialize therustlings/
directory:
rustlings init
If the commandrustlings
can't be found… (click to expand)
You are probably using Linux and installed Rust using your package manager.
Cargo installs binaries to the directory~/.cargo/bin
.Sadly, package managers often don't add~/.cargo/bin
to yourPATH
environment variable.
The solution is to …
- either add
~/.cargo/bin
manually toPATH
- or to uninstall Rust from the package manager and install it using the official way with
rustup
:https://www.rust-lang.org/tools/install
Now, go into the newly initialized directory and launch Rustlings for further instructions on getting started with the exercises:
cd rustlings/rustlings
Our general recommendation isVS Code with therust-analyzer plugin.But any editor that supportsrust-analyzer should be enough for working on the exercises.
While working with Rustlings, please use a modern terminal for the best user experience.The default terminal on Linux and Mac should be sufficient.On Windows, we recommend theWindows Terminal.
The exercises are sorted by topic and can be found in the subdirectoryexercises/<topic>
.For every topic, there is an additionalREADME.md
file with some resources to get you started on the topic.We highly recommend that you have a look at them before you start 📚️
Most exercises contain an error that keeps them from compiling, and it's up to you to fix it!Some exercises contain tests that need to pass for the exercise to be done ✅
Search forTODO
andtodo!()
to find out what you need to change.Ask for hints by enteringh
in thewatch mode 💡
After theinitialization, Rustlings can be launched by simply running the commandrustlings
.
This will start thewatch mode which walks you through the exercises in a predefined order (what we think is best for newcomers).It will rerun the current exercise automatically every time you change the exercise's file in theexercises/
directory.
If detecting file changes in theexercises/
directory fails… (click to expand)
You can add the
--manual-run
flag (rustlings --manual-run
) to manually rerun the current exercise by enteringr
in the watch mode.Pleasereport the issue with some information about your operating system and whether you run Rustlings in a container or virtual machine (e.g. WSL).
In thewatch mode (after launchingrustlings
), you can enterl
to open the interactive exercise list.
The list allows you to…
- See the status of all exercises (done or pending)
c
: Continue at another exercise (temporarily skip some exercises or go back to a previous one)r
: Reset status and file of the selected exercise (you need toreload/reopen its file in your editor afterwards)
See the footer of the list for all possible keys.
If you need any help while doing the exercises and the builtin-hints aren't helpful, feel free to ask in theQ&A category of the discussions if your question wasn't asked yet 💡
Third-party exercises are a set of exercises maintained by the community.You can use the samerustlings
program that you installed withcargo install rustlings
to run them:
- 🇯🇵Japanese Rustlings:A Japanese translation of the Rustlings exercises.
- 🇨🇳Simplified Chinese Rustlings: A simplified Chinese translation of the Rustlings exercises.
Do you want to create your own set of Rustlings exercises to focus on some specific topic?Or do you want to translate the original Rustlings exercises?Then follow the the guide aboutthird-party exercises!
Once you've completed Rustlings, put your new knowledge to good use!Continue practicing your Rust skills by building your own projects, contributing to Rustlings, or finding other open-source projects to contribute to.
If you want to remove Rustlings from your system, run the following command:
cargo uninstall rustlings
SeeCONTRIBUTING.md 🔗
Thanks toall the wonderful contributors ✨
About
🦀 Small exercises to get you used to reading and writing Rust code!