Live data from Hacker News

Rust for Embedded Systems: Current state, challenges and open problems

arxiv.org

1–10 of 159 posts

Re: Rust for Embedded Systems: Current state, challenges and open problems

#4
The overall argument that Rust's use in embedded has a long way to go is fairly accurate. A foundational crate like embedded-hal reached 1.0 only 2 months ago, 8 years after Rust 1.0. On the other hand, this crate reaching 1.0 means the rest of the ecosystem can now mature alongside it.

The paper could use a few minor corrections and improvements. For example, they go through thousands of crates in crates.io to give the impression of completeness, but it would have been better to go though a more curated source like https://github.com/rust-embedded/awesome-embedded-rust. It doesn't matter if the quality of random one off crates that someone hacked over a weekend is poor, it does matter if the crates recommended by the community are poor. But I suppose their analysis would look impressive then.

The other nit is that they think that the existence of even one instance of unsafe is a problem. This is a mistake that people unfamiliar with Rust make.

Re: Rust for Embedded Systems: Current state, challenges and open problems

#5
my takeaways:

1. https://arewertosyet.com/ to track rust RTOSes and their status

2. there are tools to convert c to rust (I dont know if I'd trust this..)

3. "Out of 43 different MCU families, peripheral crates are currently available for only 16 (37%). Most of these crates are generated using svd2rust utility"

4. developers considered but rejected rust because: "Lack of Support for MCUs (36%) ; Difficulty Integrating with Existing codebase (32%) ; Organization constraints and certification requirements (30%)"

5. "The second major (26%) issue is debugging, which is expected because, as explained in Section 2, embedded systems follow an asynchronous and event-driven design. This results in frequent cross-language domain interactions and makes debugging hard."

I would adopt rust if it were easy to get up and running just while(1) loop applications.

Re: Rust for Embedded Systems: Current state, challenges and open problems

#6
post #4

The overall argument that Rust's use in embedded has a long way to go is fairly accurate. A foundational crate like embedded-hal reached 1.0 only 2 months ago, 8 years after Rust 1.0. On the other hand, this crate reaching 1.0 means the rest of the ecosystem can now mature alongside it. The paper could use a few minor corrections and improvements. For example, they go through thousands of crates in crates.io to give…

You mean embedded-hal, not embedded-hat :-)

Re: Rust for Embedded Systems: Current state, challenges and open problems

#7
These are all real issues with Rust, though it's worth noting that many of the integration challenges mentioned also apply to external code written in C and C++.

Some of the survey responses highlight one of the biggest hurdles to rust adoption I've experienced though:

Rust has an education problem. People dramatically overestimate the correctness of their [C/C++] code and underestimate the potential severity of failures to meet that expectation. I've found very few projects where a bit of poking can't turn up memory safety issues. Even people who are far more skilled programmers than I am routinely write silly mistakes.

Unfortunately the response I often hear to bringing these issues up after the code exists is "it's working code, why should I care about these theoretical issues?"

Re: Rust for Embedded Systems: Current state, challenges and open problems

#8
post #5

my takeaways: 1. https://arewertosyet.com/ to track rust RTOSes and their status 2. there are tools to convert c to rust (I dont know if I'd trust this..) 3. "Out of 43 different MCU families, peripheral crates are currently available for only 16 (37%). Most of these crates are generated using svd2rust utility" 4. developers considered but rejected rust because: "Lack of Support for MCUs (36%) ; Difficulty Integratin…

>I would adopt rust if it were easy to get up and running just while(1) loop applications.

Doesn't embassy_rs make that pretty easy?

Re: Rust for Embedded Systems: Current state, challenges and open problems

#10
post #8
post #5

my takeaways: 1. https://arewertosyet.com/ to track rust RTOSes and their status 2. there are tools to convert c to rust (I dont know if I'd trust this..) 3. "Out of 43 different MCU families, peripheral crates are currently available for only 16 (37%). Most of these crates are generated using svd2rust utility" 4. developers considered but rejected rust because: "Lack of Support for MCUs (36%) ; Difficulty Integratin…

>I would adopt rust if it were easy to get up and running just while(1) loop applications. Doesn't embassy_rs make that pretty easy?

i found out about embassy via the link in #1, looking at it now

reading the readme gets me pretty excited tho

Post reply on HN