In mid-2017, I came across this project by James Munns. It essentially wraps the C SDK for nRF52 development boards, and provides bindings that can be called from Rust. James gave a talk to the Rust DC Meetup, remotely over video conference. This talk inspired me to buy a couple of nRF52 dev boards.
I'd like to announce that here, in Nordic's official channels, because I'd like more embedded developers to become aware of it. Rust is a language that has the ability to compile down to native code with zero runtime, and no operating system. In other words, Rust can run on bare metal hardware. Today.
My ultimate dream is for hardware manufacturers themselves to provide official support. My understanding is that supporting Rust will be much more akin to supporting C, and not really like providing a special runtime for embedded Python or JavaScript.
Some challenges we will face (you can help!):
bindgen
If you are interested, here are some links to learn more:
Here is a link to the GitHub repository
Here is a link to the full video recording of the DC Meetup talk. It offers a detailed overview of our embedded development workflow.
Finally, here is a recent talk about using "unsafe" code in Rust. This is relevant, because in the embedded context a lot of code involves usage of the unsafe keyword. This talk explains why that's necessary and not as scary as it sounds.
unsafe
Why Rust? Language designers have learned a lot in 40 years. Rust has:
Great to see, that already someone started this. I thought about doing something like this when I took a first look at rust some years ago (I think I even tested something on a STM32). I hope I can find…
Great to see, that already someone started this. I thought about doing something like this when I took a first look at rust some years ago (I think I even tested something on a STM32). I hope I can find some time in the future to contribute to this - until then - good luck and thumbs up! ;-)