Kursets struktur
Denne side er for kursuslederen.
Rust Fundamentals
The first four days make up Rust Fundamentals. The days are fast paced and we cover a lot of ground!
Course schedule:
- Day 1 Morning (3 hours, including breaks)
Segment | Duration |
---|---|
Velkommen | 5 minutes |
Hej verden! | 20 minutes |
Types and Values | 1 hour and 5 minutes |
Forgreninger | 1 hour |
- Day 1 Afternoon (2 hours and 55 minutes, including breaks)
Segment | Duration |
---|---|
Tuples and Arrays | 1 hour |
Referencer | 50 minutes |
User-Defined Types | 50 minutes |
- Day 2 Morning (3 hours and 5 minutes, including breaks)
Segment | Duration |
---|---|
Velkommen | 3 minutes |
Mønstergenkendelse | 50 minutes |
Asynkrone egenskaber (eng. Traits) | 55 minutes |
Generics | 45 minutes |
- Day 2 Afternoon (3 hours, including breaks)
Segment | Duration |
---|---|
Standard Library Types | 1 hour and 10 minutes |
Standard Library Traits | 1 hour and 40 minutes |
- Day 3 Morning (2 hours and 15 minutes, including breaks)
Segment | Duration |
---|---|
Velkommen | 3 minutes |
Håndtering af hukommelse | 1 hour and 10 minutes |
Smart Pointers | 45 minutes |
- Day 3 Afternoon (2 hours and 20 minutes, including breaks)
Segment | Duration |
---|---|
Lån af variabler | 1 hour |
Livstider | 1 hour and 10 minutes |
- Day 4 Morning (3 hours and 5 minutes, including breaks)
Segment | Duration |
---|---|
Velkommen | 3 minutes |
Iteratorer | 45 minutes |
Modules | 40 minutes |
Testing | 1 hour and 5 minutes |
- Day 4 Afternoon (2 hours, including breaks)
Segment | Duration |
---|---|
Error Handling | 45 minutes |
Unsafe Rust | 1 hour and 5 minutes |
Deep Dives
In addition to the 4-day class on Rust Fundamentals, we cover some more specialized topics:
Rust i Android
The Rust in Android deep dive is a half-day course on using Rust for Android platform development. This includes interoperability with C, C++, and Java.
You will need an AOSP checkout. Make a checkout of the course repository on the same machine and move the src/android/
directory into the root of your AOSP checkout. This will ensure that the Android build system sees the Android.bp
files in src/android/
.
Ensure that adb sync
works with your emulator or real device and pre-build all Android examples using src/android/build_all.sh
. Read the script to see the commands it runs and make sure they work when you run them by hand.
Rust in Chromium
The Rust in Chromium deep dive is a half-day course on using Rust as part of the Chromium browser. It includes using Rust in Chromium's gn
build system, bringing in third-party libraries ("crates") and C++ interoperability.
You will need to be able to build Chromium --- a debug, component build is recommended for speed but any build will work. Ensure that you can run the Chromium browser that you've built.
Bare-Metal Rust
The Bare-Metal Rust deep dive is a full day class on using Rust for bare-metal (embedded) development. Both microcontrollers and application processors are covered.
For the microcontroller part, you will need to buy the BBC micro:bit v2 development board ahead of time. Everybody will need to install a number of packages as described on the welcome page.
Samtidighed i Rust
The Concurrency in Rust deep dive is a full day class on classical as well as async
/await
concurrency.
You will need a fresh crate set up and the dependencies downloaded and ready to go. You can then copy/paste the examples into src/main.rs
to experiment with them:
cargo init concurrency
cd concurrency
cargo add tokio --features full
cargo run
Format
The course is meant to be very interactive and we recommend letting the questions drive the exploration of Rust!