awesome-embedded-rust
Curated list of resources for Embedded and Low-level development in the Rust programming language
https://github.com/rust-embedded/awesome-embedded-rust
Last synced: 5 days ago
JSON representation
-
Driver crates
-
WIP
- embedded-morse - morse)
- Ft6x36
- grove-matrix-led-my9221-rs - matrix-led-my9221-rs)
- GridEYE
- HD44780-driver - driver)
- HM11
- HRS3300
- HDC20xx
- hub75
- hzgrow-r502 - r502)
- INA260
- ISL29125
- IST7920
- LM75
- LSM303C
- LSM9DS1
- ltr-559 - 559)
- M95320
- MAX17048/9
- MAX3010x
- MAX31855
- MAX31865
- MAX44009
- MAX7219
- MCP4725
- MCP49xx
- MCP9808
- midi-port - port)
- MLX9061x
- MPU6050
- MPU9250
- MS5637
- OneWire - 
- PCD8544_rich
- PCF857x
- SCD30
- SPL06-007 - 007)
- spi-memory - memory)
- SSD1320
- SSD1322
- SSD1351
- SSD1675
- st7032i
- ST7735-lcd - lcd)
- ST7920
- TCS3472
- TPA2016D2
- VEML6040
- VEML6070
- VEML7700
- vesc-comm - comm.svg)
- VL53L0X
- w5500
- xCA9548A
- ad57xx
- lp586x
- LSM303AGR
- MAX170xx
- MCP4x
- MMA8x5x
- SSD1322_rs
- OneWire - [](https://crates.io/crates/onewire)
- lvgl - [](https://crates.io/crates/lvgl)
- vesc-comm - comm.svg)](https://crates.io/crates/vesc-comm)
- tmag5273
-
-
Firmware projects
-
WIP
- prinThor
- rmk
- anne-key
- μLA
- air-gradient-pro-rs
- Stabilizer - time configuration
- Booster - time configuration
- Thermostat EEM - channel temperature controller used in physics experiments
- Card/IO ECG - card-sized ECG device with Wifi connectivity
- BillMock - on hardware to install on Korean arcade machines
- LuLuu - based display controller that streams animated images from a microSD card to a small LCD display.
- 🤖 hypervisor - metal ARM64 Type-1 hypervisor in `no_std` Rust (single dependency: `fdt`). Runs at EL2, boots Linux with 4 vCPUs, virtio-blk/net, FF-A v1.1 SPMC at S-EL2. Targets QEMU virt machine (no real hardware tested yet).
-
-
HAL implementation crates
-
Espressif
-
GigaDevice
- `gd32f1x0-hal` - [](https://crates.io/crates/gd32f1x0-hal)
- `gd32vf103xx-hal` - [](https://crates.io/crates/gd32vf103xx-hal)
-
Microchip
- `atsam4-hal` - HAL for SAM4E, SAM4N and SAM4S - [](https://crates.io/crates/atsam4-hal)
- `atsamd-hal` - HAL for SAMD11, SAMD21, SAMD51 and SAME54 - [](https://crates.io/crates/atsamd-hal)
- `atsamx7x-hal` - HAL for SAM S70/E70/V70/V71-based devices - [](https://crates.io/crates/atsamx7x-hal)
- `pic32-hal` - HAL for PIC32MX - [](https://crates.io/crates/pic32-hal)
-
MSP430
-
Nordic
- `nrf51-hal` - [](https://crates.io/crates/nrf51-hal)
- `nrf52810-hal` - [](https://crates.io/crates/nrf52810-hal)
- `nrf52811-hal` - [](https://crates.io/crates/nrf52811-hal)
- `nrf52832-hal` - [](https://crates.io/crates/nrf52832-hal)
- `nrf52833-hal` - [](https://crates.io/crates/nrf52833-hal)
- `nrf52840-hal` - [](https://crates.io/crates/nrf52840-hal)
- `nrf9160-hal` - [](https://crates.io/crates/nrf9160-hal)
-
NXP
- `lpc55s6x-hal` - [](https://crates.io/crates/lpc55s6x-hal)
- `lpc8xx-hal` - HAL for lpc82x and lpc845 - [](https://crates.io/crates/lpc8xx-hal)
- `mkw41z-hal` - [](https://crates.io/crates/mkw41z-hal)
-
OS
- `linux-embedded-hal` - embedded-hal)
- `freebsd-embedded-hal` - 
-
Raspberry Pi Silicon
- `rp2040-hal` - HAL for the RP2040 dual-core system-on-chip - [](https://crates.io/crates/rp2040-hal)
-
Renesas
- `embedded-hal` - hal)
- `da14531-hal` - Low Power BT 5.1 System-on-Chip - [](https://crates.io/crates/da14531-hal)
-
SiFive
- `e310x-hal` - HAL for SiFive [Freedom E310](https://www.sifive.com/cores/e31) MCUs - [](https://crates.io/crates/e310x-hal)
-
Silicon Labs
-
StarFive
- `j71xx-hal` - HAL crate for StarFive [JH71xx](https://www.starfivetech.com/en/site/soc) MCUs - [](https://crates.io/crates/jh71xx-hal)
-
STMicroelectronics
- `stm32f0xx-hal` - [](https://crates.io/crates/stm32f0xx-hal)
- `stm32f3xx-hal` - [](https://crates.io/crates/stm32f3xx-hal)
- `stm32f4xx-hal` - [](https://crates.io/crates/stm32f4xx-hal)
- `stm32f7xx-hal` - [](https://crates.io/crates/stm32f7xx-hal)
- `stm32g0xx-hal` - [](https://crates.io/crates/stm32g0xx-hal)
- `stm32h7xx-hal` - [](https://crates.io/crates/stm32h7xx-hal)
- `stm32l0xx-hal` - [](https://crates.io/crates/stm32l0xx-hal)
- `stm32l1xx-hal` - [](https://crates.io/crates/stm32l1xx-hal)
- `stm32l151-hal` - [](https://crates.io/crates/stm32l151-hal)
- `stm32l4xx-hal` - [](https://crates.io/crates/stm32l4xx-hal)
- `stm32-hal` - [](https://crates.io/crates/stm32-hal2)
- `stm32f1xx-hal` - [](https://crates.io/crates/stm32f1xx-hal)
-
Texas Instruments
-
Vorago
- `va108xx-hal` - 
-
XMC
- `xmc1100-hal` - [](https://crates.io/crates/xmc1100-hal)
- `xmc4-hal` - [](https://crates.io/crates/xmc4-hal)
-
-
no-std crates
-
WIP
- adskalman - Tung-Striebel smoothing implementation. 
- atomic
- bbqueue - 
- bitmatch
- biquad
- bit_field - 
- bluetooth-hci - independent Bluetooth Host-Controller Interface implementation. 
- bounded-registers - assurance memory-mapped register code generation and interaction library. `bounded-registers` provides a Tock-like API for MMIO registers with the addition of type-based bounds checking. - 
- cam-geom - geom.svg)
- combine - 
- `cmim`
- dcmimu
- debouncr
- device-driver
- dummy-pin - pin.svg)
- embedded-crc-macros - time lookup table generation. 
- embedded-websocket - websocket.svg)
- endian_codec
- fixed-fft - point Fast Fourier Transform - [](https://crates.io/crates/fixed-fft)
- gdbstub - allocation, pure Rust implementation of the GDB Remote Serial Protocol - [](https://crates.io/crates/gdbstub)
- heapless - size buffers - 
- idsp - 
- ieee802154 - 
- infrared - 
- intrusive-collections - allocating) singly/doubly linked lists and red-black trees - 
- inverted-pin - pin.svg)
- irq - 
- lorawan-encoding
- lorawan-device - driven and async mode.
- managed - size buffers for `#![no_std]`. - 
- menu
- mqtt-sn - SN protocol - 
- microfft - friendly (`no_std`, no-`alloc`) fast fourier transforms - 
- minimq - 
- nalgebra - purpose and low-dimensional linear algebra library - 
- nom - 
- null-terminated - terminated arrays - 
- num-format - 
- `panic-persist`
- pc-keyboard
- qei - bit integer to a 64-bit integer. - 
- qemu-exit
- RampMaker - 
- scapegoat - only alternative to `BTreeSet` and `BTreeMap`. - [](https://crates.io/crates/scapegoat)
- scroll - aware Read/Write traits for generic containers - 
- Slint
- smbus-pec - pec.svg)
- sntpc
- Stepper
- tinybmp - std, no-alloc BMP parser for embedded systems. [Introductory blog post](https://wapl.es/rust/2019/03/04/embedded-graphics-0.4.7-bmp-support.html) - 
- wyhash
- adafruit-bluefruit-protocol
- lorawan-device - driven and async mode.
- embedded-cli - cli.svg)
- miniconf - 
- lorawan-encoding
- console-traits - framebuffer]. 
- `cmsis-dsp-sys` - software/CMSIS_5) math library - 
- drogue-device
- crossbus - Less, Runtime-Less Actor Computing Model.
- ector
- embedded-update
- embedded-tls - std environment.
- ethercrab - 
- gcode - std applications - [](https://crates.io/crates/gcode)
- moonboot
- register-rs - safe bitfield manipulation. `register-rs` is Tock registers with added support for CPU register definitions using the same API as for the MMIO registers. This enables homogeneous interfaces to registers of all kinds. - 
- static-bytes - bytes.svg)](https://crates.io/crates/static-bytes)
- usb-pd - PD library, supports using the FUSB302B as a Sink driver, with Source functionality planned.
- light-cli
- OxCC
- Rubble - Rust embedded BLE stack 
- wtx
- sized-dst - sized types (such as trait objects) backed by stack memory. - 
- arbitrary-int
- bitbybit
- bitfield-struct
- hayasen
- post-haste - free async Rust library for creating modular projects.
-
Categories
Driver crates
160
Peripheral Access Crates
115
no-std crates
86
Board support crates
63
HAL implementation crates
43
Tools
31
Books, blogs, and training materials
28
Firmware projects
12
Panic handling
10
Old books, blogs, and training materials
10
Real-time
10
Component abstraction crates
9
Runtime Crates
8
Architecture support crates
5
License
1
Sub Categories
WIP
194
Other
96
STMicroelectronics
34
Paid and commercially available materials
33
Nordic
20
Free and public materials
19
Renesas
19
Adafruit
18
Silicon Labs
18
Espressif
14
NXP
12
Real-time tools
11
XMC
9
Microchip
9
Real-time Operating System (RTOS)
8
Community Chat Rooms
7
Texas Instruments
7
Vorago
7
GigaDevice
6
SeeedStudio
6
MSP430
6
Arduino
5
Ambiq Micro
4
StarFive
4
Sparkfun
3
SiFive
3
Sipeed
2
OS
2
Special Purpose
2
ARM
2
Sodaq
2
MIPS
2
Raspberry Pi Silicon
2
1BitSquared
1
Wiznet
1
Teensy
1
Raspberry Pi
1
RISC-V
1
Keywords
rust
34
embedded
18
rust-embedded
10
cortex-m
10
no-std
9
svd2rust
8
xmc
8
infineon
8
arm
7
rust-lang
7
esp32
6
ferrous-systems
5
firmware
5
bare-metal
4
bootloader
4
embedded-rust
4
async
3
stm32
3
embedded-hal
3
freertos
2
avr
2
iot
2
rust-tools
2
rp2040
2
keyboard
2
espressif
2
embedded-systems
2
hal
2
at-command
1
embedded-hal-driver
1
uart
1
drone
1
drogue-device
1
esp-idf
1
microcontrollers
1
operating-system
1
mmio
1
cpu
1
ota
1
gcode
1
3d-printing
1
soem
1
industrial-automation
1
igh-ethercat-master
1
ethercat-master
1
ethercat
1
runtime-less
1
platform-less
1
asynchronous
1
actor-model
1