Modules#
Name |
Status |
Description |
Languages |
---|---|---|---|
stable |
Natural object alignment, guaranteed |
C++17 |
|
unstable |
Flexible, safe, and measurable memory allocation |
C++17 |
|
stable |
Analog-to-digital converter libraries and utilities |
C++ |
|
unstable |
GN toolchains for the Android NDK |
GN |
|
stable |
Main function wrapper and build utilities for Arduino |
C++, GN |
|
stable |
Flexible crash triggering and handling |
C, C++ |
|
experimental |
pw_assert backend for Fuchsia |
C, C++ |
|
deprecated |
Portable APIs for asynchronous code |
C++ |
|
experimental |
Cooperative async tasks for embedded |
C++17 |
|
experimental |
Fuchsia backend for pw_async |
C, C++ |
|
stable |
Base64 encoding, decoding, and validating |
C, C++, Rust |
|
stable |
Utilities for generating binary size reports |
C++, GN |
|
stable |
Flash-backed persistent storage for data blobs |
C++ |
|
unstable |
Host-layer Bluetooth Low Energy APIs and utilities |
C++ |
|
stable |
Bluetooth Host Controller Interface utilities |
C++ |
|
unstable |
Bluetooth profiles built on top of pw_bluetooth |
C++ |
|
unstable |
Lightweight proxy for augmenting Bluetooth functionality |
C++17 |
|
unstable |
Battle-tested Bluetooth with rock-solid reliability |
C++17 |
|
stable |
Simplified booting for C++ targets |
C++ |
|
stable |
ARM Cortex-M backend for pw_boot |
C, C++ |
|
stable |
Integrations for Bazel, GN, and CMake |
Bazel, CMake, GN, Rust |
|
unstable |
Utilities for using Pigweed in Android platform |
C++20 |
|
stable |
Generate, embed, and parse build-related information |
Bazel, CMake, GN |
|
stable |
Utilities for building NXP MCUXpresso SDK targets |
Bazel, GN |
|
stable |
Utilities for manipulating binary data |
C++, Rust |
|
experimental |
Async, zero-copy API for sending and receiving bytes or datagrams |
C++ |
|
stable |
Checksum calculation API |
C, C++ |
|
experimental |
Android Context Hub Runtime Environment backend |
C++ |
|
stable |
Portable std::chrono for constrained embedded devices |
C, C++ |
|
stable |
Enhance and accelerate custom command-line tooling |
Python |
|
unstable |
Clock tree management for embedded devices |
C++17 |
|
unstable |
NXP MCUXpresso SDK implementation for pw_clock_tree |
C++17 |
|
stable |
Multi-purpose pluggable interactive console for dev & manufacturing |
Python |
|
unstable |
Digital I/O interface for Linux userspace |
C++17 |
|
experimental |
Graphic display support and framebuffer management |
||
unstable |
DMA helpers for MCUXpresso SDK |
C++17 |
|
stable |
Documentation generator for Pigweed-based projects |
GN |
|
experimental |
ELF file support |
C++17 |
|
experimental |
Flexible emulators frontend |
Python, CLI |
|
experimental |
Zephyr utilities |
||
experimental |
String formatting |
Rust |
|
stable |
Embedded-friendly std::function |
C++17 |
|
unstable |
Better C++ code through easier fuzzing |
C++17, C++20 |
|
unstable |
pw_rpc over gRPC |
C++17, C++20 |
|
stable |
Simple, robust, and efficient serial communication |
Python, C++17, TypeScript |
|
stable |
Handy hexdump utilities |
C++17 |
|
stable |
Cross-platform I2C API with interactive debugging |
C++17 |
|
stable |
Linux userspace implementation for pw_i2c |
C++17 |
|
stable |
NXP MCUXpresso SDK implementation for pw_i2c |
C++17 |
|
stable |
Raspberry Pi Pico SDK implementation for pw_i2c |
C++17 |
|
stable |
Code editor and IDE support for Pigweed projects |
C++, CLI, Python, VS Code |
|
stable |
Simple, efficient C++ JSON serialization |
C++17 |
|
stable |
Lightweight, persistent key-value store |
C++17 |
|
stable |
Robust and portable logging for embedded projects |
C++, Java, Python, Rust |
|
unstable |
Android logging backend |
C++ |
|
experimental |
Fuchsia logging backend |
C, C++ |
|
stable |
Replacement interface for standard libc dynamic memory operations |
C, C++ |
|
unstable |
A buffer API optimized for zero-copy messaging |
C++17 |
|
stable |
Efficient mathematical utilities for embedded |
C++ |
|
unstable |
Micro-benchmarks that are easy to write and run |
C++17 |
|
stable |
Helpful preprocessor macros |
C, C++ |
|
stable |
Python tools for running presubmit checks and linters |
Python |
|
stable |
Expressive interface for encoding and decoding protocol buffers |
C++ |
|
experimental |
Fuchsia implementation of pw_random |
||
stable |
Error propagation primitives: value-or-error |
C++17 |
|
experimental |
Transport-agnostic packet routing |
C++ |
|
stable |
Efficient, low-code-size RPC system for embedded devices |
C++, Java, JavaScript, Python, TypeScript |
|
experimental |
A modular way to see the world |
Python, C++17 |
|
experimental |
Secure software delivery |
Python, C++17 |
|
stable |
std::span for C++17 |
C++17, C++20 |
|
unstable |
SPI interface for Linux userspace |
C++17, C++20 |
|
unstable |
Raspberry Pi RP2040 backend for pw_spi |
C++ |
|
stable |
Exception-free error propagation for embedded |
C++17, C, Python, Java, TypeScript, Rust |
|
stable |
A foundational interface for streaming data |
C++, Rust |
|
stable |
Efficient, easy, and safe string manipulation |
C++17 |
|
stable |
gRPC server for running executables in parallel |
Go |
|
stable |
Compress strings to shrink logs by +75% |
C++, C11, Python, Rust, TypeScript, Java |
|
stable |
Embedded toolchains for GN-based Pigweed projects |
GN |
|
unstable |
A modular toolkit for declaring C/C++ toolchains in Bazel |
Starlark |
|
unstable |
Core interfaces for UART communication |
C++ |
|
unstable |
NXP MCUXpresso SDK implementation for pw_uart |
C++ |
|
stable |
GoogleTest for embedded |
||
stable |
Functions for encoding and decoding variable length integers |
C, C++, Rust |
|
stable |
Embedded development file system watcher |
||