Open-source Contribution

Sep 10, 2024

Open-source Projects

Hopter

Hopter is a Rust-based embedded operating system built to enable memory-safe, efficient, reliable, and responsive applications. It is co-designed with a customized compiler that guarantees additional invariants beyond what Rust can express. Also, Hopter does not rely on any hardware protection mechanisms, providing safety purely through software.

Currently, Hopter supports the STM32F4 microcontroller family with Arm Cortex-M4F cores. Contributions to port Hopter to other microcontrollers are highly welcome and appreciated.

  • Memory safety: Hopter prevents stack overflows on top of other memory safety aspects guaranteed by Rust.
  • Memory efficiency: Hopter can allocate stacks on-demand in small chunks called stacklets, time-multiplexing the stack memory among tasks.
  • Reliability: Hopter is not afraid of panic. Tasks can be spwaned as restartable tasks, which automatically restart if they panic.
  • Responsiveness: Hopter supports zero-latency IRQ handling. The kernel never disables IRQs, ensuring that pending interrupts are handled immediately.

Hadusos

Hadusos is a session protocol allowing reliable communication over serial devices. Two participants of the protocol either assumes the sender or the receiver role at a time, thus half-duplex. Hadusos has the following features:

  • Simple: The simple design of the protocol leads to slim implementation code and thus small binary overhead which is especially important for storage constrained embedded devices.
  • Zero-copy: No dynamic memory allocation is needed. Most received bytes goes directly into the client buffer without any copying, and all bytes to be sent goes directly to the serial devices.
  • Panic-free: The protocol implementation code never panics.

Documentation: https://docs.rs/hadusos/0.2.1/hadusos/

Other Contributions

stm32f4xx-hal

A Rust embedded-hal HAL for all MCUs in the STM32F4 family.

Features and bug fix patches merged:

LLVM

A collection of modular and reusable compiler and toolchain technologies.

Features and bug fix patches merged:

owning-ref

A library for creating references that carry their owner with them.

Feature submitted as pull request: