2022-12-21 17:36:30 +02:00
|
|
|
# Comprehensive Rust 🦀
|
|
|
|
|
2023-05-16 00:12:10 +02:00
|
|
|
[![Build workflow](https://img.shields.io/github/actions/workflow/status/google/comprehensive-rust/build.yml?style=flat-square)](https://github.com/google/comprehensive-rust/actions/workflows/build.yml?query=branch%3Amain)
|
2023-03-07 14:45:00 +02:00
|
|
|
[![GitHub contributors](https://img.shields.io/github/contributors/google/comprehensive-rust?style=flat-square)](https://github.com/google/comprehensive-rust/graphs/contributors)
|
|
|
|
[![GitHub stars](https://img.shields.io/github/stars/google/comprehensive-rust?style=flat-square)](https://github.com/google/comprehensive-rust/stargazers)
|
|
|
|
|
2023-05-02 08:02:28 +02:00
|
|
|
This repository has the source code for Comprehensive Rust 🦀, a multi-day Rust
|
2022-12-21 17:36:30 +02:00
|
|
|
course developed by the Android team. The course covers all aspects of Rust,
|
2023-05-02 08:02:28 +02:00
|
|
|
from basic syntax to generics and error handling. It also includes deep dives on
|
|
|
|
[Android], [bare-metal], and [concurrency].
|
|
|
|
|
2023-05-11 14:37:35 +02:00
|
|
|
[Android]: https://google.github.io/comprehensive-rust/android.html
|
|
|
|
[bare-metal]: https://google.github.io/comprehensive-rust/bare-metal.html
|
|
|
|
[concurrency]: https://google.github.io/comprehensive-rust/concurrency.html
|
2022-12-21 17:36:30 +02:00
|
|
|
|
2022-12-21 19:37:55 +02:00
|
|
|
Read the course at **https://google.github.io/comprehensive-rust/**.
|
|
|
|
|
2023-01-03 17:40:37 +02:00
|
|
|
## Course Format and Target Audience
|
|
|
|
|
|
|
|
The course is used internally at Google when teaching Rust to experienced
|
|
|
|
software engineers. They typically have a background in C++ or Java.
|
|
|
|
|
|
|
|
The course is taught in a classroom setting and we hope it will be useful for
|
|
|
|
others who want to teach Rust to their team. The course will be less useful for
|
|
|
|
self-study since you miss out on the discussions happening in the classroom. You
|
|
|
|
don't see the questions and answers and you don't see the compiler errors we
|
|
|
|
trigger when going through the code samples. We hope to improve on this via
|
|
|
|
[speaker notes](https://github.com/google/comprehensive-rust/issues/53) and by
|
|
|
|
[publishing videos](https://github.com/google/comprehensive-rust/issues/52).
|
|
|
|
|
2022-12-21 17:36:30 +02:00
|
|
|
## Building
|
|
|
|
|
2023-02-28 15:05:09 +02:00
|
|
|
The course is built using a few tools:
|
2023-05-30 17:04:19 +02:00
|
|
|
|
2023-04-05 16:08:11 +02:00
|
|
|
- [mdbook](https://github.com/rust-lang/mdBook)
|
|
|
|
- [mdbook-svgbob](https://github.com/boozook/mdbook-svgbob)
|
2023-05-11 15:55:43 +02:00
|
|
|
- [mdbook-i18n-helpers](https://github.com/google/mdbook-i18n-helpers)
|
2023-05-09 14:43:29 +02:00
|
|
|
- [mdbook-exerciser](mdbook-exerciser/)
|
2023-02-28 15:05:09 +02:00
|
|
|
|
2023-04-05 16:08:11 +02:00
|
|
|
Install these tools with:
|
2022-12-21 17:36:30 +02:00
|
|
|
|
|
|
|
```shell
|
|
|
|
$ cargo install mdbook
|
|
|
|
$ cargo install mdbook-svgbob
|
2023-04-05 16:08:11 +02:00
|
|
|
$ cargo install mdbook-i18n-helpers
|
2023-04-03 17:18:32 +02:00
|
|
|
$ cargo install --path mdbook-exerciser
|
2022-12-21 17:36:30 +02:00
|
|
|
```
|
|
|
|
|
|
|
|
Then run
|
|
|
|
|
|
|
|
```shell
|
|
|
|
$ mdbook test
|
|
|
|
```
|
|
|
|
|
|
|
|
to test all included Rust snippets. Run
|
|
|
|
|
|
|
|
```shell
|
|
|
|
$ mdbook serve
|
|
|
|
```
|
|
|
|
|
|
|
|
to start a web server with the course. You'll find the content on
|
|
|
|
<http://localhost:3000>. You can use `mdbook build` to create a static version
|
2023-05-09 14:43:29 +02:00
|
|
|
of the course in the `book/` directory. Note that you have to separately build
|
2023-05-24 20:39:49 +02:00
|
|
|
and zip exercises and add them to `book/html`. To build any of the translated
|
|
|
|
versions of the course, run `MDBOOK_BOOK__LANGUAGE=xx mdbook build -d book/xx`
|
|
|
|
where `xx` is the ISO 639 language code (e.g. `da` for the Danish translation).
|
|
|
|
[TRANSLATIONS.md](TRANSLATIONS.md) contains further instructions.
|
2023-05-30 17:04:19 +02:00
|
|
|
|
2022-12-21 17:36:30 +02:00
|
|
|
## Contact
|
|
|
|
|
2023-05-30 17:04:19 +02:00
|
|
|
For questions or comments, please contact
|
|
|
|
[Martin Geisler](mailto:mgeisler@google.com) or start a
|
|
|
|
[discussion on GitHub](https://github.com/google/comprehensive-rust/discussions).
|
|
|
|
We would love to hear from you.
|