# Embedded Development in Rust

**URL:** <https://discourse.openrobotics.org/t/embedded-development-in-rust/41354>\
**Category:** Embedded\
**Tags:** rust, embedded, rtos\
**Created:** [January 1, 2025, 6:01am UTC](https://discourse.openrobotics.org/t/embedded-development-in-rust/41354 "2025-01-01T06:01:35Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Immanuel\_Jzv](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/immanuel_jzv/32/14100_2.png) [@Immanuel\_Jzv](https://discourse.openrobotics.org/u/Immanuel_Jzv)\
**Post date:** [January 1, 2025, 6:01am UTC](https://discourse.openrobotics.org/t/embedded-development-in-rust/41354/1 "2025-01-01T06:01:36Z")

</div>

Rust’s growing ecosystem provides a range of tools and frameworks designed for embedded systems development, each catering to specific needs in debugging, concurrency, and operating systems.

These are either mature or stable projects in the rust ecosystem.

**Debugger: probe-rs**  
probe-rs is an open-source debugging toolkit written in Rust, designed to program and debug microcontrollers via debug probes. It supports ARM and RISC-V targets.  
This project gets rid of the GDB layer and provides a direct interface to the debug probe, which then enables other software to use its debug functionality.  
Learn more at [probe.rs](https://probe.rs/).

**Frameworks for Concurrency and Real-Time Systems**

**RTIC (Real-Time Interrupt-driven Concurrency) ('\*'RTOS)**  
RTIC is a lightweight framework for building real-time systems, particularly suited for ARM Cortex-M microcontrollers. It leverages hardware interrupts for task management, ensuring minimal overhead and high efficiency.

Key features include:

- 

```
    Event-triggered task management

```

- 

```
    Shared memory through a single call stack

```

- 

```
    Support for real-time applications requiring precise interrupt handling

```

Explore more on the [RTIC](https://rtic.rs/2/book/en/).

**Embassy.rs**  
Embassy is an asynchronous framework enabling efficient, non-blocking concurrency using Rust’s async/await syntax.It simplifies the handling of multiple I/O operations without manually writing state machines.

Key features:

- 

```
   Cooperative multitasking

```

- 

```
   Integrated HALs for supported microcontrollers

```

- 

```
   Ideal for I/O-bound applications

```

Learn more on [Embassy](https://embassy.dev/)

> **[Embassy](https://embassy.dev/)**
>
> The next-generation framework for embedded applications. Write safe, correct and energy-efficient embedded code faster, using the Rust programming language, its async facilities, and the Embassy libraries.

**Operating System: Tock OS**

Tock is an embedded operating system written in Rust, designed for safety and isolation. It employs a microkernel architecture, making it suitable for running multiple concurrent applications securely.

Its key features include:

- 

```
 Concurrency and fault isolation

```

- 

```
 Efficient memory management

```

- 

```
 Secure execution of untrusted applications alongside critical tasks

```

Discover more about [Tock OS](https://tockos.org/)

> **[Tock Embedded Operating System](https://tockos.org/)**
>
> Tock is a safe, multitasking operating system for low-power, low-memory microcontrollers.

---

<div class="post-metadata">

**Author:** ![lonebots](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/lonebots/32/35588_2.png) [@lonebots](https://discourse.openrobotics.org/u/lonebots)\
**Post date:** [January 2, 2025, 12:46am UTC](https://discourse.openrobotics.org/t/embedded-development-in-rust/41354/2 "2025-01-02T00:46:26Z")

</div>

Thanks for sharing @Immanuel_Jzv
