This is a wee operating system written to support the
async
style of programming in Rust on microcontrollers. It fits in about 2 kiB of Flash and uses about 20 bytes of RAM (before your tasks are added). In that space, you get a fullasync
runtime with multiple tasks, support for complex concurrency viajoin
andselect
, and a lot of convenient but simple APIs.
I understood some of those words.
“Wee” is a scottish term for something small.
It’s a OS (and library?) for microcontrollers (Arduino, maker boards, the stuff that control suff like traffic lights, dish washers, car engines, etc) that allow you to program in a way where you do more than one thing at once (think multitasking).
This has traditionally been incredibly hard to do in traditional languages used in microcontrollers like C. The combination of Rust and this claims to make this much easier and thus far more viable than before.
I haven’t tried it, but it sounds awesome. This async approach is what I would take if I were going to build something similar. Obviously there’s even more benefit on limited memory devices like microcontrollers, but even on full desktops I feel that these kinds of async primitives are under utilized.
I would love to be able to use rust as my goto language for micro-controllers. It’s compile time guarantees make it a good fit assuming it could be well supported. Alas, C is often the only officially supported language with everything else being experimental.