Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 28 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,32 @@
# Rust Exercises
# Ferrous Systems' Rust Exercises

This book contains a collection of Rust Exercises, written by Ferrous Systems. See [ferrous-systems.com/training](https://ferrous-systems.com/training) for more details or a custom quote. You can view this material on-line at <https://rust-exercises.ferrous-systems.com>.
This is free exercise material produced by Ferrous Systems for trainings. See [ferrous-systems.com/training](https://ferrous-systems.com/training) for more details or a custom quote. You can view this material on-line at <https://rust-exercises.ferrous-systems.com>.

We use these exercises as part of our [Rust Training](https://ferrous-systems.com/training/), but you are welcome to try them for yourself as well.
It accompanies the Slide decks we use for training, which you can view on-line at <https://rust-training.ferrous-systems.com>.

If you wish to fund further development of the course, why not [book a training with us](https://ferrous-systems.com/training/)!
The material is created for people with anywhere from zero Rust experience (but with a programming background) to advanced Rust knowledge.

# Reading the book
Ferrous Systems offers a large Rust curriculum for both beginner and advanced Rust developers.

Ferrous Systems specialises in custom, topic focused workshops for enterprises starting or expanding their use of Rust. Supplemental to our courses, we offer ongoing help and feedback.

## Overview

The materials are presented as a set of small, self-contained lessons on a specific topic. Note that lessons might be revised, extended, or removed, when necessary to keep material up to date or relevant to new audiences.

We assemble these lessons into various programmes for our commercial trainings. We can also provide custom lessons - please [reach out](https://ferrous-systems.com/contact) if that is of interest.

## Reading the material

This material is organised as an [`mdbook`](https://crates.io/crates/mdbook), along with source code in the form of worked solutions and/or starting templates.

You can:

* View the `main` branch on-line at <https://rust-exercises.ferrous-systems.com/latest/book>
* View a specific tag like `v1.10.0` at <https://rust-exercises.ferrous-systems.com/v1.10.0/book>
* Browse [the chapters of the book on Github](./exercise-book/src/SUMMARY.md)
* Browse [the exercises on Github](./exercise-templates)
* Browse [the solutions on Github](./exercise-solutions)
* Browse [the starting templates on Github](./exercise-templates)
* Browse [the worked solutions on Github](./exercise-solutions)
* Clone the repo, and build the book (see [Building the material locally](#building-the-material-locally))
* Download the book in HTML format for off-line use, with solutions and templates, from the [releases area](https://github.com/ferrous-systems/rust-exercises/releases)

Expand All @@ -38,11 +50,18 @@ You could use `mdbook serve` instead to start a webserver that serves up the boo
To verify that every code example in the book compiles as expected, run:

```sh
cd ./exercise-book
mdbook test
```

To verify that all the examples build, we use the top-level build script `build.sh`. Note that running that script may require a valid CriticalUp token, as we use Ferrocene in our CI.

## Credits

The development of this course is financed by Ferrous Systems. They are open sourced as a contribution to the growth of the Rust language.

If you wish to fund further development of the course, [book a training](https://ferrous-systems.com/training)!

## License

[![Creative Commons License](https://i.creativecommons.org/l/by-sa/4.0/88x31.png)](http://creativecommons.org/licenses/by-sa/4.0/)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I recommend explicitly stating it's share-alike: CC BY-SA 4.0

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It looks like this:

image

The BY SA lettering appears in the image. But I guess we could add it to the alt-text in case its not clear from the URL or the image filename.

Expand All @@ -51,4 +70,6 @@ This work is licensed under a [Creative Commons Attribution-ShareAlike 4.0 Inter

We encourage the use of this material, under the terms of the above license, in the production and/or delivery of commercial or open-source Rust training programmes.

We unfortunately cannot accept copyrightable contributions from third parties unless they enter into a Contributors' License Agreement with us. Please contact <[email protected]> if you would like to collaborate with us on this material.

Copyright (c) Ferrous Systems, 2025