1
0
mirror of https://github.com/rust-lang/rustlings.git synced 2024-12-12 11:14:55 +02:00
🦀 Small exercises to get you used to reading and writing Rust code!
Go to file
2024-04-26 03:25:31 +02:00
.github/workflows chore: remove link checker 2023-09-04 14:58:13 +02:00
dev Update dev/Cargo.toml 2024-04-25 21:07:10 +02:00
exercises Merge branch 'main' 2024-04-24 15:48:29 +02:00
rustlings-macros Fix missing info.toml in the macros crate 2024-04-25 19:54:03 +02:00
solutions Edit comment 2024-04-25 16:30:01 +02:00
src Include dev/Cargo.toml 2024-04-25 19:58:55 +02:00
tests Format test file :P 2024-04-25 14:51:14 +02:00
.editorconfig fix: Fix typo in .editorconfig 2022-07-20 18:23:31 -04:00
.gitignore Ignore all lock files but the one in root 2024-04-21 18:20:15 +02:00
.markdownlint.yml feat(docs): add markdown linter for exercises README.md files 2023-03-30 19:53:22 +03:30
.typos.toml Prepare for using cargo-release 2024-04-25 19:02:07 +02:00
Cargo.lock chore: Release 2024-04-25 21:07:41 +02:00
Cargo.toml chore: Release 2024-04-25 21:07:41 +02:00
CHANGELOG.md chore: fix typo 2024-03-12 14:35:48 +08:00
CONTRIBUTING.md Update the contributing guide 2024-04-26 01:19:52 +02:00
dev-Cargo.toml Include dev/Cargo.toml 2024-04-25 19:58:55 +02:00
info.toml Replace mode by test and strict_clippy 2024-04-25 03:25:45 +02:00
LICENSE Update LICENSE year. 2016-03-27 15:57:49 -04:00
oranda.json release: 5.6.0 2023-09-04 15:23:04 +02:00
README.md Update README.md 2024-04-26 03:25:31 +02:00
release-hook.sh Update dev/Cargo.toml 2024-04-25 21:07:10 +02:00

Rustlings 🦀❤️

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 reading the 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.

Getting Started

Installing Rust

Before installing Rustlings, you need to have Rust installed. Visit www.rust-lang.org/tools/install for further instructions on installing Rust. This'll also install Cargo, Rust's package/project manager.

🐧 If you're on Linux, make sure you've installed gcc (for a linker). Deb: sudo apt install build-essential gcc. Dnf: sudo dnf install gcc.

🍎 If you're on MacOS, make sure you've installed Xcode and its developer tools by typing xcode-select --install.

Installing Rustlings

The following command will download and compile Rustlings:

cargo install rustlings@6.0.0-beta.3
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@6.0.0-beta.3 --locked
  • Otherwise, please report the issue.

Initialization

After installing Rustlings, run the following command to initialize the rustlings/ directory:

rustlings init

Now, go into the newly initialized directory and launch Rustlings for further instructions on getting started with the exercises:

cd rustlings/
rustlings

Doing exercises

The exercises are sorted by topic and can be found in the subdirectory exercises/<topic>. For every topic, there is an additional README.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.

Watch Mode

After initialization, Rustlings can be launched by simply running the command rustlings.

This will start the watch 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 the exercises/ directory.

If detecting file changes in the exercises/ directory fails… (click to expand)

You can add the --manual-run flag (rustlings --manual-run) to manually rerun the current exercise by entering r or run in the watch mode.

Please report the issue with some information about your operating system and whether you run Rustlings in a container or virtual machine (e.g. WSL).

Exercise List

In the watch mode (after launching rustlings), you can enter l or list 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 (temporarelly skip some exercises or go back to a previous one)
  • r: Reset the status and file of an exercise (you need to reload/reopen its file in your editor afterwards)

See the footer of the list for all possible keys.

Continuing On

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.

Uninstalling Rustlings

If you want to remove Rustlings from your system, run the following command:

cargo uninstall rustlings

That's it!

Contributing

See CONTRIBUTING.md 🔗

Contributors

Thanks to all the wonderful contributors 🎉