This is the companion repository for the YouTube video, where we walk through
the creation of a basic async
runtime in embedded Rust from the ground up.
The code for the end of each chapter is in its respective directory.
Is it perfect? No! But some parts of it might be helpful to those (ok, me)
trying to learn about async/await
or using Rust in embedded systems.
My apologies to Ferris for the use of unsafe
in a few places: some were
avoidable (PAC access via raw pointer), while others were not (no-std
Waker
/RawWaker
stuff).
A burning desire to learn new things? And watching the two videos leading up to this one, of course, which cover:
Also: reading the Rust book is always a good idea
Can't get enough async
embedded Rust? Then I'd encourage you to check out:
embassy
- Dario Nieuwenhuis' 2024 RustNL talk introducing
embassy
lilos
- Cliff Biffle's 2023 OSFC talk introducing
lilos
- Cliff's blog
If you're looking for a similar bottom-up exploration of async
Rust but this
time using the standard library, check out the book "Asynchronous Programming
in Rust" by Carl Fredrik Samson.
Any discussion of async
Rust would be incomplete without mentioning
without.boats blog, which is full of great
articles about the history of async/await
within the Rust project, async
topics like Pinning, and possible future directions for async
.