Contributor
Rushabh Gala

Apache NuttX Apps and Rust Integration


Mentors
Lup Yuen Lee, Xiang Xiao
Organization
Apache Software Foundation
Technologies
c, c++, rust
Topics
rust, Embedded System, no_std, IoT security
The integration of Rust into Apache NuttX, an embedded Real-Time Operating System (RTOS) used across various platforms from 8-bit to 64-bit, aims to enhance the security and reliability of IoT applications. Rust, known for its safety and memory integrity, is seen as a promising solution to address vulnerabilities in IoT systems, such as buffer overflows and memory corruption. The project involves studying Rust for embedded systems and "no_std" environments, creating coding guidelines for Rust in NuttX, and developing a guide for these standards. It starts with converting simple NuttX applications, like the LED Blinky App, to Rust, gradually moving to more complex applications. The deliverables include implementing Embedded Rust, C Interoperability, and Heap Memory Allocation in Rust, porting the LED Blinky App from C to Rust, and testing it on various Single-Board Computers. The project also aims to merge these items into NuttX Mainline as Pull Requests and add workarounds for NuttX's rustc build process. Documentation will cover a coding standard for Rust, setting up a local environment for Rust build, configuring NuttX to work with Rust, and building Rust firmware with NuttX.