-
zerocopy
zero-copy parsing and serialization
-
brotli-decompressor
brotli decompressor that with an interface avoiding the rust stdlib. This makes it suitable for embedded devices and kernels. It is designed with a pluggable allocator so that the standard…
-
portable-atomic
Portable atomic types including support for 128-bit atomics, atomic float, etc
-
bitvec
Addresses memory by bits, for packed collections and bitfields
-
oorandom
A tiny, robust PRNG implementation
-
ciborium-io
Simplified Read/Write traits for no_std usage
-
ciborium-ll
Low-level CBOR codec primitives
-
critical-section
Cross-platform critical section
-
embedded-hal
A Hardware Abstraction Layer (HAL) for embedded systems
-
embedded-io
Embedded IO traits
-
postcard
A no_std + serde compatible message library for Rust
-
cty
Type aliases to C types like c_int for use with bindgen
-
no-std-net
Rust's std::net... without the 'std'.
-
atomic-polyfill
Atomic polyfills, for targets where they're not available
-
build_const
creating importable constants from build.rs or a script
-
cortex-m
Low level access to Cortex-M processors
-
managed
An interface for logically owning objects, whether or not heap allocation is available
-
rhai
Embedded scripting for Rust
-
defmt-parser
Parsing library for defmt format strings
-
defmt
A highly efficient logging framework that targets resource-constrained devices, like microcontrollers
-
bare-metal
Abstractions common to bare metal systems
-
fixed
Fixed-point numbers
-
elf
A pure-rust library for parsing ELF files
-
cortex-m-rt
Minimal runtime / startup for Cortex-M microcontrollers
-
smoltcp
A TCP/IP stack designed for bare-metal, real-time systems without a heap
-
datafrog
Lightweight Datalog engine intended to be embedded in other Rust programs
-
embedded-hal-nb
Non-blocking Hardware Abstraction Layer (HAL) for embedded systems using the
nb
crate -
fugit
Time library for embedded targets with ease-of-use and performance first
-
aligned
A newtype with alignment of at least
A
bytes -
embedded-can
HAL traits for Controller Area Network (CAN) devices
-
embedded-dma
Traits to aid in the creation of sound DMA abstractions
-
embassy-sync
no-std, no-alloc synchronization primitives with async support
-
rhai_codegen
Procedural macros support package for Rhai, a scripting language and engine for Rust
-
embedded-io-async
Async embedded IO traits
-
embedded-hal-async
An asynchronous Hardware Abstraction Layer (HAL) for embedded systems
-
embedded-storage
A Storage Abstraction Layer for Embedded Systems
-
embedded-graphics-core
Core traits and functionality for embedded-graphics
-
gdbstub
GDB Remote Serial Protocol in Rust
-
embedded-graphics
Embedded graphics library for small hardware displays
-
ufmt-write
μfmt
’suWrite
trait -
embassy-futures
no-std, no-alloc utilities for working with futures
-
uefi
Safe and easy-to-use wrapper for building UEFI apps
-
micromath
Embedded-friendly math library featuring fast floating point approximations (with small code size) for common arithmetic operations, trigonometry, 2D/3D vector types, statistical analysis…
-
ufmt
A (6-40x) smaller, (2-9x) faster and panic-free alternative to
core::fmt
-
riscv
Low level access to RISC-V processors
-
esp-println
print!
andprintln!
implementations various Espressif devices -
stm32h7
Device support crates for STM32H7 devices
-
embassy-time-driver
Driver trait for embassy-time
-
naive-timer
A minimal naive timer for embedded (no_std) platforms
-
embassy-time
Instant and Duration for embedded no-std systems, with async timer support
-
defmt-rtt
Transmit defmt log messages over the RTT (Real-Time Transfer) protocol
-
esp-backtrace
Bare-metal backtrace support for ESP32
-
sysfs_gpio
access to GPIOs using the Linux sysfs interface
-
xtensa-lx
Low-level access for Xtensa LX processors and peripherals
-
embassy-executor
async/await executor designed for embedded usage
-
i2cdev
API for safe access to Linux i2c device interface
-
panic-probe
Panic handler that exits
probe-run
with an error code -
mutex-trait
Foundational mutex trait and helpers
-
tock-registers
Memory-Mapped I/O and register interface developed for Tock
-
oid
Rust-native library for building, parsing, and formating Object Identifiers (OIDs)
-
riscv-rt-macros
Attributes re-exported in
riscv-rt
-
stm32f4
Device support crates for STM32F4 devices
-
delog
Deferred logging, an implementation and extension of Rust's standard logging facade
-
stm32h7xx-hal
Hardware Abstraction Layer implementation for STM32H7 series microcontrollers
-
esp-idf-sys
Bindings for ESP-IDF (Espressif's IoT Development Framework)
-
embassy-time-queue-driver
Timer queue driver trait for embassy-time
-
xtensa-lx-rt
Low level access for Xtensa LX processors
-
shared-bus
Abstraction for sharing a bus between multiple devices
-
ihex
parsing and generating Intel HEX (or IHEX) objects. This format is commonly used for representing compiled program code and data to be loaded into a microcontroller, flash memory or ROM.
-
gpio-cdev
Linux GPIO Character Device Support (/dev/gpiochipN)
-
embedded-hal-bus
Bus/Device connection mechanisms for embedded-hal, a Hardware Abstraction Layer (HAL) for embedded systems
-
esp-idf-hal
A Hardware abstraction layer for Espressif's ESP family of microcontrollers based on the ESP-IDF framework
-
rtt-target
Target side implementation of the RTT (Real-Time Transfer) I/O protocol
-
ux
Implement the following non standard integers: u2, u3, u4, u5, u6, u7, u9, u10, u11, u12, u13, u14, u15, u17, u18, u19, u20, u21, u22, u23, u24, u25, u26, u27, u28, u29, u30, u31, u33…
-
uguid
GUID (Globally Unique Identifier) no_std library
-
atsamd-hal
HAL and Peripheral access API for ATSAMD11, ATSAMD21, ATSAMD51, ATSAME51, ATSAME53 and ATSAME54 microcontrollers
-
linux-embedded-hal
embedded-hal
traits for Linux devices -
esp32s3
Peripheral access crate for the ESP32-S3
-
stm32f4xx-hal
Peripheral access API for STM32F4 series microcontrollers
-
uefi-macros
Procedural macros for the
uefi
crate -
esp32s2
Peripheral access crate for the ESP32-S2
-
smart-leds-trait
A trait for implementing effects, modifiers and drivers for programmable leds
-
rp2040-hal
Embedded-HAL impl for the rp2040 microcontroller
-
aarch64-cpu
Low level access to processors using the AArch64 execution state
-
r0
Initialization code ('crt0') written in Rust
-
cortex-m-rtic
Real-Time Interrupt-driven Concurrency (RTIC): a concurrency framework for building real-time systems
-
embuild
A build support library for embedded Rust
-
embedded-svc
A set of traits for services higher level than embedded-hal and typically found in embedded microcontrollers with WiFi or BLE support
-
smart-leds
device drivers
-
embedded-display-controller
Traits for display controllers
-
arbitrary-int
Modern and lightweight implementation of u2, u3, u4, ..., u127
-
fdt
A pure-Rust
#![no_std]
crate for parsing Flattened Devicetrees -
libc_alloc
global allocator which hooks into libc's malloc/free
-
uefi-raw
Raw UEFI types
-
corncobs
COBS encode/decode for Rust no_std targets
-
coap-lite
A lightweight CoAP message manipulation crate, ideal for embedded environments
-
embedded-time
Fully defined, inter-operable, ergonomic, and fast human-time units (both duration and rate types) with hardware timer abstraction and software timers
-
buddy_system_allocator
A bare metal allocator that uses buddy system
-
cortex-m-semihosting
Semihosting for ARM Cortex-M processors
-
embedded-storage-async
A Storage Abstraction Layer for Embedded Systems
-
ssd1306
I2C/SPI driver for the SSD1306 OLED display controller
-
atsame54p
Peripheral access API for ATSAME54P microcontrollers (generated using svd2rust)
-
mips-rt
Minimal runtime for MIPS MCU cores
-
atsame54_xpro
Board Support crate for the SAM E54 Xplained Pro Evaluation Kit
-
smlang
A no-std state machine language DSL
-
rppal
Interface for the Raspberry Pi's GPIO, I2C, PWM, SPI and UART peripherals
-
bluetooth-hci
Bluetooth HCI
-
mips-mcu
Low level access to MIPS MCU cores
-
accelerometer
Generic, embedded-friendly accelerometer support, including traits and types for taking readings from 2 or 3-axis accelerometers and tracking device orientations
-
embedded-nal
A Network Abstraction Layer (NAL) for Embedded Systems
-
espflash
A command-line tool for flashing Espressif devices
-
embassy-executor-macros
macros for creating the entry point and tasks for embassy-executor
-
panic-semihosting
Report panic messages to the host stderr using semihosting
-
bluenrg
Interface to ST Micro BlueNRG Bluetooth radios
-
mbedtls
Idiomatic Rust wrapper for MbedTLS, allowing you to use MbedTLS with only safe code while being able to use such great Rust features like error handling and closures. Building on MbedTLS's focus on embedded use…
-
esp-idf-part
parsing and generating ESP-IDF partition tables
-
esp32
Peripheral access crate for the ESP32
-
intx
Defines new integer types with non-standard but fixed sizes
-
esp32c3
Peripheral access crate for the ESP32-C3
-
rtic-syntax
The Real-Time Interrupt-driven Concurrency (RTIC) meta language
-
ral-registers
MMIO registers abstraction with a macro API
-
jep106
A pollable collection of all JEP106 manufacturer codes
-
esp-idf-svc
embedded-svc traits for ESP-IDF (Espressif's IoT Development Framework)
-
rtic-monotonic
Core abstractions of the Real-Time Interrupt-driven Concurrency Monotonic timers
-
esp32c6
Peripheral access crate for the ESP32-C6
-
esp32s3-hal
HAL for ESP32-S3 microcontrollers
-
esp32c2
Peripheral access crate for the ESP32-C2
-
flip-link
Flips the memory layout of embedded programs to protect against stack overflows
-
pc-keyboard
PS/2 keyboard interface library
-
xtensa-lx-rt-proc-macros
Attributes re-exported in
xtensa-lx-rt
-
esp32h2
Peripheral access crate for the ESP32-H2
-
tmp1x2
Platform-agnostic Rust driver for the TMP102 and TMP112 digital temperature sensors
-
embassy-usb-driver
Driver trait for
embassy-usb
, an async USB device stack for embedded devices -
bxcan
STM32 bxCAN peripheral driver
-
embassy-net-driver
Driver trait for the
embassy-net
async TCP/IP network stack -
stm32-device-signature
Device electronic signature 'driver' for STM32 microcontrollers
-
esp32s2-hal
HAL for ESP32-S2 microcontrollers
-
panic-rtt-target
Logs panic messages over RTT using rtt-target
-
esp-riscv-rt
Minimal runtime / startup for RISC-V CPUs from Espressif
-
stm32-fmc
Hardware Abstraction Layer for STM32 Memory Controllers (FMC/FSMC)
-
embedded-nal-async
An Async Network Abstraction Layer (NAL) for Embedded Systems
-
embassy-embedded-hal
Collection of utilities to use
embedded-hal
andembedded-storage
traits with Embassy -
riscv-target
RISC-V target string manipulation utilities
-
embedded-hal-mock
A collection of mocked devices that implement the embedded-hal traits
-
unsize
A stable alternative to CoerceUnsize
-
riscv-rt
Minimal runtime / startup for RISC-V CPU's
-
rtcc
Real-time clock / calendar (RTC / RTCC) traits
-
semihosting
AArch64, ARM, RISC-V, MIPS32, MIPS64, and Xtensa
-
rtic-core
Core abstractions of the Real-Time Interrupt-driven Concurrency framework
-
bbqueue
A SPSC, lockless, no_std, thread safe, queue, based on BipBuffers
-
sntpc
making SNTP requests
-
rlibc
bare-metal library supplying certain libc functions like memcpy, memmove, memset and memcmp. This is designed for use in freestanding environments where another libc does not exist…
-
ft5336
A platform agnostic driver for the FT5336 touch screen driver used on the STM32F746 Discovery board, built using the embedded-hal
-
nrf-hal-common
details of the nRF HAL crates. Don’t use this directly, use one of the specific HAL crates instead (
nrfXYZ-hal
). -
tinybmp
No-std, low memory footprint BMP image loader
-
sdio-host
SD host protocol library
-
stm32l4
Device support crates for STM32L4 devices
-
embedded-crc-macros
Macros implementing portable CRC calculation algorithms for use in no_std
-
probe-rs-target
Target description schema for probe-rs
-
stm32f1
Device support crates for STM32F1 devices
-
esp32p4
Peripheral access crate for the ESP32-P4
-
defmt-decoder
Decodes defmt log frames
-
smlang-macros
Procedual macros for the smlang crate
-
avr-device
Register access crate for AVR microcontrollers
-
embassy-net-driver-channel
High-level channel-based driver for the
embassy-net
async TCP/IP network stack -
aligned-array
A newtype with alignment of at least
A
bytes -
automotive_diag
Core definitions for various Automotive ECU Diagnostics such as UDS ISO-14229, KWP2000, OBD-II, etc
-
defmt-json-schema
defmt JSON schema
-
mips-rt-macros
Attributes re-exported in
mips-rt
-
biquad
digital second order IIR filtrers, also known as biquads
-
nrf-usbd
USB driver for nRF microcontrollers
-
sbi-spec
Definitions and constants in RISC-V Supervisor Binary Interface (RISC-V SBI)
-
embassy-net
Async TCP/IP network stack for embedded systems
-
opentalk-nextcloud-client
NextCloud client library embedded in OpenTalk
-
sbi-rt
Runtime library for supervisors to call RISC-V Supervisor Binary Interface (RISC-V SBI)
-
embassy-usb
Async USB device stack for embedded devices in Rust
-
rtic
Real-Time Interrupt-driven Concurrency (RTIC): a concurrency framework for building real-time systems
-
edge-executor
Async executor suitable for embedded environments
-
volatile-mem
managing volatile memory
-
atomic-pool
Statically allocated pool providing a std-like Box
-
static-alloc
A bump allocator on static memory for the alloc-traits crate
-
ldproxy
A linker proxy tool
-
cortex-m-rtic-macros
Procedural macros of the cortex-m-rtic crate
-
lbfgs
L-BFGS algorithm
-
stm32f1xx-hal
HAL for the STM32F1xx family of microcontrollers
-
alloc-traits
Traits to replace or supplement the alloc module in no_std
-
probe-rs
A collection of on chip debugging tools to communicate with microchips
-
systick-monotonic
RTIC Monotonic implementation based on SysTick
-
stm32f3
Device support crates for STM32F3 devices
-
minicov
Code coverage and profile-guided optimization support for no_std and embedded programs
-
tt21100
An embedded-hal driver for the TT21100 multi-touch touchscreen controller
-
embassy-rp
Embassy Hardware Abstraction Layer (HAL) for the Raspberry Pi RP2040 microcontroller
-
gpt_disk_io
GPT (GUID Partition Table) disk IO no_std library
-
usbd-hid-descriptors
Low-level, wire-format enums/bitfields used in HID descriptors
-
rtic-monotonics
that provides implementations of the Monotonic trait from rtic-time
-
rtic-common
lib TODO
-
huawei-cloud-api-definitions-BMS
Huawei Cloud API definitions, generated from OpenAPI spec
-
aht20-async
A platform agnostic driver to interface with the AHT20 temperature/humidity sensors
-
minimq
A minimal MQTT5 client designed for no_std platforms
-
fixed-slice-vec
FixedSliceVec
is a dynamic length Vec with runtime-determined maximum capacity backed by a slice -
rtic-time
lib TODO
-
rtic-sync
Synchronization primitives for asynchronous contexts
-
svd2rust
Generate Rust register maps (
struct
s) from SVD files -
nrf52833-hal
HAL for nRF52833 microcontrollers
-
trapframe
Handle Trap Frame across kernel and user space on multiple ISAs
-
embassy-hal-internal
Internal implementation details for Embassy HALs. DO NOT USE DIRECTLY.
-
embassy-stm32
Embassy Hardware Abstraction Layer (HAL) for ST STM32 series microcontrollers
-
atsamd21g
Peripheral access API for ATSAMD21G microcontrollers (generated using svd2rust)
-
libiio-sys
Native, unsafe, bindings to the Linux libiio library. Used by industrial-io.
-
cyw43
Rust driver for the CYW43439 WiFi chip, used in the Raspberry Pi Pico W
-
cyw43-pio
RP2040 PIO SPI implementation for cyw43
-
crc_all
A Pure Rust Implementation of Generic CRC Algorithm
-
stm32g0
Device support crates for STM32G0 devices
-
byte
A low-level, zero-copy and panic-free serializer and deserializer for binary
-
gpt_disk_types
GPT (GUID Partition Table) disk data types no_std library
-
esp-wifi
A WiFi, Bluetooth and ESP-NOW driver for use with Espressif chips and bare-metal Rust
-
microbit-common
details for the BBC Micro:bit board support crates
-
genio
type safe, low level replacement for
std::io
. Supportsno_std
for embedded development, just disable cargo featurestd
. Because of limitations ofstd::io::Error
type,genio
providesRead
and… -
microfft
Embedded-friendly Fast Fourier Transforms
-
jaylink
communicate with J-Link USB devices
-
lpc55-pac
Peripheral access API for NXP LPC55 microcontrollers
-
sbi
A pure-Rust library to interact with the RISC-V Supervisor Binary Interface
-
embedded-graphics-simulator
Embedded graphics simulator
-
fdt-rs
A flattened device tree parser for embedded no-std environments
-
embedded-sdmmc
A basic SD/MMC driver for Embedded Rust
-
panic-itm
Log panic messages using the ITM (Instrumentation Trace Macrocell)
-
panic-persist
Persist panic messages in the targets' RAM
-
rtic-macros
Procedural macros, syntax parsing, and codegen of the RTIC crate
-
tiny-led-matrix
direct control of a small monochrome LED display
-
industrial-io
Linux Industrial I/O (IIO) Support
-
ws2812-timer-delay
Timer-based driver for ws2812 leds
-
cpuio
Bare metal (no_std) inb, outb, inw, outw, inl, outw instructions with Rust-like API
-
rhai-url
Url package for Rhai
-
std-embedded-nal
embedded-nal
traits for large devices that support the standard library -
nrf52840-hal
HAL for nRF52840 microcontrollers
-
esp32-hal
HAL for ESP32 microcontrollers
-
eeprom24x
Platform-agnostic Rust driver for the 24x series serial EEPROMs
-
nrf51-hal
HAL for nRF51 microcontrollers
-
pca9535
PCA 9535 IO-Expander driver using embedded-hal
-
aligned-cmov
Fast constant-time conditional moves of aligned bytes
-
stm32g4
Device support crates for STM32G4 devices
-
esp32c3-hal
HAL for ESP32-C3 microcontrollers
-
fdcan
STM32 FDCAN peripheral driver
-
portable-atomic-util
Synchronization primitives built with portable-atomic
-
defmt-test
A test harness for embedded devices
-
esp-wifi-sys
Bindings to Espressif's WiFi and Bluetooth low-level drivers
-
xargo
The sysroot manager that lets you build and customize
std
-
profont
monospace font for use with the embedded-graphics crate
-
lsm303agr
Platform-agnostic Rust driver for the LSM303AGR ultra-compact high-performance eCompass module: ultra-low-power 3D accelerometer and 3D magnetometer
-
spi-memory-async
A generic driver for different SPI Flash and EEPROM chips
-
endian-type-rs
Type safe wrappers for types with a defined byte order
-
xmc4300
XMC peripheral library for XMC4300 generated from SVD
-
hd44780-driver
HD44780 compliant displays with embedded-hal
-
heapless-bytes
Newtype around heapless byte Vec with efficient serde
-
lm75
Platform-agnostic Rust driver for the LM75 temperature sensor and thermal watchdog
-
atsamd21e
Peripheral access API for ATSAMD21E microcontrollers (generated using svd2rust)
-
microbit-v2
Board support crate for the BBC Micro:bit V2
-
std-embedded-time
embedded-time Clocks using std::time
-
stm32f0
Device support crates for STM32F0 devices
-
esp-metadata
Metadata for Espressif devices
-
embassy-nrf
Embassy Hardware Abstraction Layer (HAL) for nRF series microcontrollers
-
espup
installing and maintaining Espressif Rust ecosystem
-
stm32f0xx-hal
Peripheral access API for STM32F0 series microcontrollers
-
cmsis-pack
managing CMSIS Packs
-
tinyrand
Lightweight RNG specification and several ultrafast implementations in Rust
-
kble-eb90
Virtual Harness Toolkit
-
jh71xx-pac
Peripheral access crate for the JH71xx SoCs
-
ieee802154
Partial implementation of the IEEE 802.15.4 standard for low-rate wireless personal area networks
-
lfsr
Galois linear feedback shift registers
-
rtt-logger
An rtt-target logger implementation for Cortex-M embedded platforms
-
rhai-dylib
Dylib support for Rhai
-
femtopb-build
A code generator for
femtopb
-
form
A small script to move inline modules into the proper directory structure
-
switch-hal
HAL and basic implementations for input and output switches (buttons, switches, leds, transistors)
-
opcua
OPC UA client and server API
-
tudelft-quadrupel
Hardware support library for the quadrupel drone project (embedded systems lab)
-
atsamd51j
Peripheral access API for ATSAMD51J microcontrollers (generated using svd2rust)
-
imxrt-ral
Register access layer for all NXP i.MX RT microcontrollers
-
naked-function
Proc macro implementation of #[naked]
-
xmc4100
Cortex-M peripheral access library
-
xmc4700
XMC peripheral library for XMC4700 generated from SVD
-
defmt-or-log
Logging macros that forward to either defmt or log
-
stm32f3xx-hal
Peripheral access API for STM32F3 series microcontrollers
-
defmt-brtt
Defmt logs over RTT as well as through a BBQueue
-
msp430
Low level access to MSP430 microcontrollers
-
rhai-rand
Random number package for Rhai
-
bme280
device driver for the Bosch BME280 temperature, humidity, and atmospheric pressure sensor and the Bosch BMP280 temperature, and atmospheric pressure sensor
-
drone-core
The core crate for Drone, an Embedded Operating System
-
cortex-m-log
Logging facilities for Cortex-M processors
-
interchange
Request/response mechanism for embedded development, using atomics
-
femtopb
A no-std, no-alloc set of tools for protobuf encoding and decoding
-
esp-build
Build utilities for esp-hal
-
rnacos-web-dist-wrap
rnacos server's console front-end dist embed wrap project
-
drone-ctypes
Platform-specific C types for Drone apps
-
drone-svd
CMSIS-SVD parser for Drone, an Embedded Operating System
-
libafl_bolts
Low-level bolts to create fuzzers and so much more
-
json-lines
A no_std + serde compatible message library implementing JSON Lines
-
libafl_targets
Common code for target instrumentation that can be used combined with LibAFL
-
embedded-semver
Compact representation of semantic versions as an i32, u32 i64 or u64
-
gpio
Fast GPIO interfaces for Linux