I use it professionally. We implement a bunch of baremetal software in it, specifically bootloaders and security firmware. My take is that it's mostly been better than C. We can write code with much higher confidence that it's free from the types of bugs that plague C code if you're not careful. When we were crunching through large portions of code individually, integration was very painless, whereas in C the same kind of integration or refactoring work can be a nightmare. That said, the immaturity of the tooling is definitely a pain point. We have to do a lot more work to get tooling equivalent to what we could get from C, specifically in terms of integrating it into our build systems. And there are some dark corners where we're doing unusual things that the language didn't have in mind, and there's no escape hatch within the language yet to express what we want in pure Rust. Specifically this is painful for bootloaders, where the compiler assumes it knows about all code that's going to run on the processor, but in fact it doesn't because we're loading other code. Answer from BigPeteB on reddit.com
Write a library or driver once, and use it with a variety of systems, ranging from very small microcontrollers to powerful SBCs. Learn more · As part of the Rust open source project, support for embedded systems is driven by a best-in-class open source community, with support from commercial ...
There isn't a whole lot of information on the internet around how to architect an embedded system, especially in Rust, so I was wondering: How would you go about structuring an embedded application in Rust? For example, the firmware for a 3D printer. Embedded systems tend to be quite different ... More on users.rust-lang.org
users.rust-lang.org
0
1
September 2, 2019
Are people happy with embedded Rust in production?
I ran into a wall - probe-rs It could just be my total ignorance, but the few 'getting started' guides I used all used probe-rs. Like the embassy project uses it. The problem is my work uses windows laptops, but with the official jlink driver. To use probe-rs you have to use a tool to swap the driver with another one. Why I can't use the same one probe-rs uses also confuses me. Some of our tools require the official driver. so I cant be swapping out the official jlink driver with the one probe-rs needs between development and test. Thats like 2-3 times a day, which doesnt seem like a lot, but it's another thing that eats up time. My IT department said 'we dont allow you swapping the driver out'. Of course engineers have admin, so we CAN, but theoretically will get in trouble And I thought. Oh well, I'll just generate the hex or bin, and maybe rust can generate something with debug symbols and I'll just load it without probe-rs. spent an hour trying to figure it out and gave up. so again, im sure it's something noobie-related but 3 hrs fighting drivers and build options to get blinky on an nrf52 had be like 'nah' Also the big thing that c/c++ offers are vendor libraries. I believe rust offers really good c/c++ integration, but native libs would be preferred. So we run into these issues PLUS: lack of candidates to hire old guys dont wanna learn something new mid guys do, but there is a huge learning curve half the team is a 'services' company that writes libraries for us, so we'd have to pay for them to learn rust C does everything we need guarantee of memory safety really isn't that important (at least where I work) More on reddit.com
r/embedded
73
66
June 19, 2024
Rust for embedded
I'm using esp-hal + Embassy on ESP32-S3 right now and I'm really liking it. It's still unfinished in some part but it's heading in the right direction. esp-hal seems to be taking over as the recommended way to do Rust on ESP32 according to Espressif: https://developer.espressif.com/blog/2025/02/rust-esp-hal-beta/ More on reddit.com
r/rust
19
11
March 24, 2025
Which hardware to choose for learning embedded Rust?
ESP32-C3 is (kind of) cheap, has an official rust SDKs and the advantage of not needing a separate debug probe (which you do more or less need for the Pi Pico). Also it has WIFI. That being said, I haven't done much more than the equivalent of "Hello world" on mine and so I can't really give an extensive review. More on reddit.com
March 26, 2024 - EEVblog Captcha · We have seen a lot of robot like traffic coming from your IP range, please confirm you're not a robot · This security check has been powered by · CrowdSec
Welcome to The Embedded Rust Book: An introductory book about using the Rust Programming Language on “Bare Metal” embedded systems, such as Microcontrollers.
October 21, 2024 - "Thanks to its direct access to both hardware and memory, Rust is well suited for embedded systems and bare-metal development." - GitHub
To make embedded systems programming more accessible for people that are not already embedded systems developers. ... Documentation on how to use the Rust Programming Language to develop firmware for bare metal (microcontroller) devices
January 13, 2025 - Recall that continuous integration (CI) is a system that can automatically run tests every time you update your code. I use GitHub Actions as my CI platform. Here’s the configuration I added to .github/workflows/ci.yml to test my project on embedded platforms: test_thumbv7m_none_eabi: name: Setup and Check Embedded runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Rust uses: dtolnay/rust-toolchain@master with: toolchain: stable target: thumbv7m-none-eabi - name: Install check stable and nightly run: | cargo check --target thumbv7m-none-eabi --no-default-features rustup override set nightly rustup target add thumbv7m-none-eabi cargo check --target thumbv7m-none-eabi --no-default-features sudo apt-get update && sudo apt-get install qemu qemu-system-arm - name: Test Embedded (in nightly) timeout-minutes: 1 run: | cd tests/embedded cargo run
October 19, 2024 - Think of an embedded system as a computer that’s part of a larger device, designed to perform one or a few specific tasks. For example: The brain inside your washing machine that controls its functions. The chip in your car that manages the engine. A tiny controller in a smart thermostat that adjusts your home’s temperature. These systems usually need to be fast, reliable, and safe. And that’s where Rust comes in, providing a safe, modern way to code these systems.
And cargo, Rust’s build tool / dependency manager, is a better experience than whatever you were thinking of using in C. It’s nice to have a good macro system when doing embedded systems work, and Rust’s macro system is FAR better than cpp’s brainless text substitution, which is widely understood to be a good way to shoot yourself in the foot.
December 22, 2025 - A few years ago, I attempted to build a hardware projects using ESP32 microcontrollers and Rust, but the experience was so painful, between weird processors, custom toolchains and incomplete libraries,
The RAM chip, ROM chip and I/O controller (the peripheral in this system) would be joined to the processor through a series of parallel traces known as a ‘bus’. This bus carries address information, which selects which device on the bus the processor wishes to communicate with, and a data bus which carries the actual data. In our embedded microcontrollers, the same principles apply - it’s just that everything is packed on to a single piece of silicon.
August 30, 2024 - By the end, you’ll have a clearer picture of whether Rust is right for your next embedded software development project. Let’s start with the elephant in the room: C has been the go-to language for embedded systems programming for decades, and for good reason.
December 9, 2024 -Rust interoperability enables developing Rust applications on top of existing C codebases. Despite this, even the most resourceful organizations continue to develop embedded software in C/C++. This paper performs the first systematic study to ...
RIOT-OS directly supports applications written in Rust, both in terms of build system integration and by having safe and idiomatic wrappers. Tock An embedded operating system designed for running multiple concurrent, mutually distrustful applications on low-memory and low-power microcontrollers
Probe-rs is a modern, Rust-focused software designed to work with debuggers in embedded systems. Unlike OpenOCD, Probe-rs is built with simplicity in mind and aims to reduce the configuration burden often found in other debugging solutions. It supports various probes and targets, providing a high-level interface for interacting with embedded hardware.
Rust for Embedded Systems provides engineers with a foundational understanding of Rust for embedded development, mastering essential tooling, navigating from micro-architectural to high-level coding practices, excelling in memory management within constrained environments, and seamlessly ...
September 2, 2019 - There isn't a whole lot of information on the internet around how to architect an embedded system, especially in Rust, so I was wondering: How would you go about structuring an embedded application in Rust? For example, the firmware for a 3D printer. Embedded systems tend to be quite different from a normal desktop or server-based application in that you've got tight resource and timing constraints, the application must be able to run continuously without fail for long periods, and all possi...
December 28, 2025 - Embedded microcontroller (MCU) vendors, such as Espressif, officially support Rust in their toolchains, while Nordic Semiconductor and STM32 have strong Rust communities. The automotive industry has taken notice and it is moving fast. Ferrous Systems (since October 2023) and Hightech-RT (since April 2024) offer ISO 26262-certified Rust compilers for automotive applications.
July 11, 2023 - The Rust embedded ecosystem of runtimes, Hardware Abstraction Libraries (HALs), and drivers revolves around one library: embedded-hal. Using Rust's delightful type system, embedded-hal has models (Rust developers would call them 'traits') for ...