6 releases

0.1.5 Mar 26, 2024
0.1.4 Mar 1, 2024
0.1.3 Jan 25, 2024
0.1.1 Oct 11, 2023

#1201 in Command line utilities

Download history 22/week @ 2024-01-19 4/week @ 2024-01-26 7/week @ 2024-02-23 137/week @ 2024-03-01 10/week @ 2024-03-08 3/week @ 2024-03-15 134/week @ 2024-03-22 36/week @ 2024-03-29 2/week @ 2024-04-05

175 downloads per month

Apache-2.0 OR MIT

255KB
588 lines

wr

A Rust workshop runner

demo

wr is a CLI to drive test-driven workshops written in Rust.
It is designed to be used in conjunction with a workshop repository, which contains a series of exercises to be solved by the workshop participants.

[!NOTE] This workshop runner has been developed by Mainmatter to support our hands-on Rust workshops. Check out our landing page if you're looking for Rust consulting or training!

How it works

What I cannot create, I do not understand.

Richard Feynman

A test-driven workshop is structured as a series of exercises.
Each exercise is a Rust project with a set of tests that verify the correctness of the solution.

wr will run the tests for the current exercise and, if they pass, allow you to move on to the next exercise while keeping track of what you have solved so far.

You can see it in action in the rust-telemetry-workshop.

Installation

cargo install workshop-runner

Check that it has been installed correctly:

wr --help

Run

wr

from the top-level folder of a workshop repository to verify your current solutions and move forward in the workshop.

Enjoy!

Folder structure

wr expects the following structure for the workshop repository:

.
├── exercises
│  ├── 00_<collection name>
│  │  ├── 00_<exercise name>
│  │  │  ..
│  │  ├── 0n_<exercise name>
│  │  ..
│  ├── 0n_<collection name>
│  │  ├── 00_<exercise name>
│  │  │  ..
│  │  ├── 0n_<exercise name>

Each xx_<exercise name> folder must be a Rust project with its own Cargo.toml file.

You can choose a different top-level folder name by either passing the --exercises-dir flag when invoking wr or by creating a top-level wr.toml file with the following content:

exercises-dir = "my-top-level-folder"

You can refer to rust-telemetry-workshop as an example.

Dependencies

~28MB
~518K SLoC