Up your coding game and discover issues early. SonarLint is a free plugin that helps you find & fix bugs and security issues from the moment you start writing code. Install from your favorite IDE marketplace today. Learn more →
Top 23 Rust Embedded Projects
-
Unfortunately, it increases the code size by 10%. I was looking into this just last week, and can confirm that it's still a problem on the latest version of Rust nightly: https://github.com/tock/tock/pull/1660
I wish we could have frame pointers, because they would make working in embedded land so much easier and more reliable, but a 10% increase in code size just isn't worth it.
-
-
InfluxDB
Build time-series-based applications quickly and at scale.. InfluxDB is the Time Series Platform where developers build real-time applications for analytics, IoT and cloud-native services. Easy to start, it is available in the cloud or on-premises.
-
Project mention: Best language to use as a scripting lang for my rust app | reddit.com/r/rust | 2023-01-13
-
OpenSK
OpenSK is an open-source implementation for security keys written in Rust that supports both FIDO U2F and FIDO2 standards.
-
> others are just batshit-crazy from my pov (the macro system for instance)
Ah yes, I won't disagree here; macros get very complex very fast. It's one of the more undercooked parts of Rust.
> e.g. I don't really see the usefulness of async-await in a systems programming language
This really depends on the task, but honestly it is genuinely useful. Even in places you wouldn't expect, e.g. in embedded: https://github.com/embassy-rs/embassy
And AFAIK there are plans to use async Rust in the Linux kernel.
-
Late start today as well. I really thought today would be the day that I'd have to abandon my goal of no heap allocations. But, luckily I had an arena allocator available that I could fairly easily adapt to store data on the stack. And with some tweaks we have today's solution:
-
I think you can use xargo for this with:
-
SonarLint
Clean code begins in your IDE with SonarLint. Up your coding game and discover issues early. SonarLint is a free plugin that helps you find & fix bugs and security issues from the moment you start writing code. Install from your favorite IDE marketplace today.
-
Project mention: eskarp: Custom design using ergogen, 3D printed case, RP2040 with Rust firmware | reddit.com/r/ErgoMechKeyboards | 2023-01-06
https://github.com/TeXitoi/keyberon - keyboard scanning
-
zenoh
zenoh unifies data in motion, data in-use, data at rest and computations. It carefully blends traditional pub/sub with geo-distributed storages, queries and computations, while retaining a level of time and space efficiency that is well beyond any of the mainstream stacks.
The new Eclipse Zenoh 0.7.0 release, codename Charmander, brings to the table many features requested by the community on the Zenoh’s Discord server.
-
-
It’s definitely used for “nonsafety” stuff like infotainment. The ATSAMD HAL/PACs are probably the most complete embedded microcontroller family as far as Rust support goes, and that’s a part with heavy intent toward automotive use.
-
-
stm32f1xx-hal
A Rust embedded-hal HAL impl for the STM32F1 family based on japarics stm32f103xx-hal (by stm32-rs)
You can also check how the Rust hal does it here :https://github.com/stm32-rs/stm32f1xx-hal/blob/master/examples/serial.rs
-
-
Project mention: Any good examples of using embedded Rust with an existing embedded C codebase? | reddit.com/r/rust | 2022-10-12
Reading nrf-hal source, unfortunately new does re-configure the UARTE, and there is not a new_unchecked. The solution I can think of is to duplicate the write code with nrf52833_hal::pac::UARTE0. The Uarte type does not contain any metadata, it exists purely to guard the init of UARTE.
-
-
Project mention: How to write HALs and get into microcontroller programming | reddit.com/r/rust | 2022-09-13
There is https://docs.rust-embedded.org/book/design-patterns/hal/index.html but I wonder what OP is missing in https://github.com/esp-rs/esp-hal
-
scapegoat
Safe, fallible, embedded-friendly ordered set/map via a scapegoat tree. Validated against BTreeSet/BTreeMap. (by tnballo)
-
gdbstub
An ergonomic and easy-to-integrate implementation of the GDB Remote Serial Protocol in Rust, with full no_std support.
Project mention: A fast STM32 embedded system emulator implemented in Rust | reddit.com/r/rust | 2022-07-24now integrate gdbstub to support debugging code inside the emulator :)
-
Maybe, this will help you: https://github.com/lobaro/FreeRTOS-rust
-
Project mention: What the HAL? The Quest for Finding a Suitable Embedded Rust HAL | dev.to | 2023-01-30
HALs with std support: This is exclusive to ESP32 devices right now.
-
-
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
Rust Embedded related posts
- Embedded gui interfaces
- EDMA v0.1.0-beta.5 Release: Add `sled` support
- PoloDB 3 released
- eskarp: Custom design using ergogen, 3D printed case, RP2040 with Rust firmware
- How do I program an ESP32 S3 in Rust using podman from WSL?
- Blog post: Rust 2023 (by Yosh)
- RFC2217 implementation written in Rust
-
A note from our sponsor - SonarLint
www.sonarlint.org | 8 Feb 2023
Index
What are some of the best open-source Embedded projects in Rust? This list will help you:
Project | Stars | |
---|---|---|
1 | tock | 4,130 |
2 | smoltcp | 2,854 |
3 | Rhai | 2,485 |
4 | OpenSK | 2,395 |
5 | embassy | 1,487 |
6 | rune | 1,121 |
7 | xargo | 1,002 |
8 | keyberon | 745 |
9 | zenoh | 683 |
10 | anne-key | 559 |
11 | atsamd | 441 |
12 | PoloDB | 440 |
13 | stm32f1xx-hal | 417 |
14 | opcua | 370 |
15 | nrf-hal | 360 |
16 | rusty-clock | 314 |
17 | esp-hal | 236 |
18 | scapegoat | 222 |
19 | gdbstub | 216 |
20 | FreeRTOS-rust | 205 |
21 | esp-idf-hal | 191 |
22 | linux-embedded-hal | 161 |
23 | flip-link | 155 |