| { |
| "pw_alignment": { |
| "tagline": "Natural object alignment, guaranteed", |
| "status": "stable", |
| "languages": [ |
| "C++17" |
| ] |
| }, |
| "pw_allocator": { |
| "tagline": "Flexible, safe, and measurable memory allocation", |
| "status": "unstable", |
| "languages": [ |
| "C++17" |
| ], |
| "size": "400 to 1800 bytes" |
| }, |
| "pw_analog": { |
| "tagline": "Analog-to-digital converter libraries and utilities", |
| "status": "stable", |
| "languages": [ |
| "C++" |
| ] |
| }, |
| "pw_android_toolchain": { |
| "tagline": "GN toolchains for the Android NDK", |
| "status": "unstable", |
| "languages": [ |
| "GN" |
| ] |
| }, |
| "pw_arduino_build": { |
| "tagline": "Main function wrapper and build utilities for Arduino", |
| "status": "stable", |
| "languages": [ |
| "C++", |
| "GN" |
| ] |
| }, |
| "pw_assert": { |
| "tagline": "Flexible crash triggering and handling", |
| "status": "stable", |
| "languages": [ |
| "C", |
| "C++" |
| ] |
| }, |
| "pw_assert_fuchsia": { |
| "tagline": "pw_assert backend for Fuchsia", |
| "status": "experimental", |
| "languages": [ |
| "C", |
| "C++" |
| ] |
| }, |
| "pw_async": { |
| "tagline": "Portable APIs for asynchronous code", |
| "status": "deprecated", |
| "languages": [ |
| "C++" |
| ] |
| }, |
| "pw_async2": { |
| "tagline": "Cooperative async tasks for embedded", |
| "status": "experimental", |
| "languages": [ |
| "C++17" |
| ] |
| }, |
| "pw_async_fuchsia": { |
| "tagline": "Fuchsia backend for pw_async", |
| "status": "experimental", |
| "languages": [ |
| "C", |
| "C++" |
| ] |
| }, |
| "pw_base64": { |
| "tagline": "Base64 encoding, decoding, and validating", |
| "status": "stable", |
| "languages": [ |
| "C", |
| "C++", |
| "Rust" |
| ] |
| }, |
| "pw_bloat": { |
| "tagline": "Utilities for generating binary size reports", |
| "status": "stable", |
| "languages": [ |
| "C++", |
| "GN" |
| ] |
| }, |
| "pw_blob_store": { |
| "tagline": "Flash-backed persistent storage for data blobs", |
| "status": "stable", |
| "languages": [ |
| "C++" |
| ] |
| }, |
| "pw_bluetooth": { |
| "tagline": "Host-layer Bluetooth Low Energy APIs and utilities", |
| "status": "unstable", |
| "languages": [ |
| "C++" |
| ] |
| }, |
| "pw_bluetooth_hci": { |
| "tagline": "Bluetooth Host Controller Interface utilities", |
| "status": "stable", |
| "languages": [ |
| "C++" |
| ] |
| }, |
| "pw_bluetooth_profiles": { |
| "tagline": "Bluetooth profiles built on top of pw_bluetooth", |
| "status": "unstable", |
| "languages": [ |
| "C++" |
| ] |
| }, |
| "pw_bluetooth_proxy": { |
| "tagline": "Lightweight proxy for augmenting Bluetooth functionality", |
| "status": "unstable", |
| "languages": [ |
| "C++17" |
| ] |
| }, |
| "pw_bluetooth_sapphire": { |
| "tagline": "Battle-tested Bluetooth with rock-solid reliability", |
| "status": "unstable", |
| "size": "500 to 700 kB", |
| "languages": [ |
| "C++17" |
| ] |
| }, |
| "pw_boot": { |
| "tagline": "Simplified booting for C++ targets", |
| "status": "stable", |
| "languages": [ |
| "C++" |
| ] |
| }, |
| "pw_boot_cortex_m": { |
| "tagline": "ARM Cortex-M backend for pw_boot", |
| "status": "stable", |
| "languages": [ |
| "C", |
| "C++" |
| ] |
| }, |
| "pw_build": { |
| "tagline": "Integrations for Bazel, GN, and CMake", |
| "status": "stable", |
| "languages": [ |
| "Bazel", |
| "CMake", |
| "GN", |
| "Rust" |
| ] |
| }, |
| "pw_build_android": { |
| "tagline": "Utilities for using Pigweed in Android platform", |
| "status": "unstable", |
| "languages": [ |
| "C++20" |
| ] |
| }, |
| "pw_build_info": { |
| "tagline": "Generate, embed, and parse build-related information", |
| "status": "stable", |
| "languages": [ |
| "Bazel", |
| "CMake", |
| "GN" |
| ] |
| }, |
| "pw_build_mcuxpresso": { |
| "tagline": "Utilities for building NXP MCUXpresso SDK targets", |
| "status": "stable", |
| "languages": [ |
| "Bazel", |
| "GN" |
| ] |
| }, |
| "pw_bytes": { |
| "tagline": "Utilities for manipulating binary data", |
| "status": "stable", |
| "languages": [ |
| "C++", |
| "Rust" |
| ] |
| }, |
| "pw_channel": { |
| "tagline": "Async, zero-copy API for sending and receiving bytes or datagrams", |
| "status": "experimental", |
| "languages": [ |
| "C++" |
| ] |
| }, |
| "pw_checksum": { |
| "tagline": "Checksum calculation API", |
| "status": "stable", |
| "languages": [ |
| "C", |
| "C++" |
| ] |
| }, |
| "pw_chre": { |
| "tagline": "Android Context Hub Runtime Environment backend", |
| "status": "experimental", |
| "languages": [ |
| "C++" |
| ] |
| }, |
| "pw_chrono": { |
| "tagline": "Portable std::chrono for constrained embedded devices", |
| "status": "stable", |
| "languages": [ |
| "C", |
| "C++" |
| ] |
| }, |
| "pw_cli": { |
| "tagline": "Enhance and accelerate custom command-line tooling", |
| "status": "stable", |
| "languages": [ |
| "Python" |
| ] |
| }, |
| "pw_clock_tree": { |
| "tagline": "Clock tree management for embedded devices", |
| "status": "unstable", |
| "languages": [ |
| "C++17" |
| ] |
| }, |
| "pw_clock_tree_mcuxpresso": { |
| "tagline": "NXP MCUXpresso SDK implementation for pw_clock_tree", |
| "status": "unstable", |
| "languages": [ |
| "C++17" |
| ] |
| }, |
| "pw_console": { |
| "tagline": "Multi-purpose pluggable interactive console for dev & manufacturing", |
| "status": "stable", |
| "size": "N/A (host) but works best with pw_rpc on-device", |
| "languages": [ |
| "Python" |
| ] |
| }, |
| "pw_digital_io_linux": { |
| "tagline": "Digital I/O interface for Linux userspace", |
| "status": "unstable", |
| "languages": [ |
| "C++17" |
| ] |
| }, |
| "pw_display": { |
| "tagline": "Graphic display support and framebuffer management", |
| "status": "experimental", |
| "languages": [] |
| }, |
| "pw_dma_mcuxpresso": { |
| "tagline": "DMA helpers for MCUXpresso SDK", |
| "status": "unstable", |
| "languages": [ |
| "C++17" |
| ] |
| }, |
| "pw_docgen": { |
| "tagline": "Documentation generator for Pigweed-based projects", |
| "status": "stable", |
| "languages": [ |
| "GN" |
| ] |
| }, |
| "pw_elf": { |
| "tagline": "ELF file support", |
| "status": "experimental", |
| "languages": [ |
| "C++17" |
| ] |
| }, |
| "pw_emu": { |
| "tagline": "Flexible emulators frontend", |
| "status": "experimental", |
| "languages": [ |
| "Python", |
| "CLI" |
| ] |
| }, |
| "pw_env_setup_zephyr": { |
| "tagline": "Zephyr utilities", |
| "status": "experimental" |
| }, |
| "pw_format": { |
| "tagline": "String formatting", |
| "status": "experimental", |
| "languages": [ |
| "Rust" |
| ] |
| }, |
| "pw_function": { |
| "tagline": "Embedded-friendly std::function", |
| "status": "stable", |
| "languages": [ |
| "C++17" |
| ] |
| }, |
| "pw_fuzzer": { |
| "tagline": "Better C++ code through easier fuzzing", |
| "status": "unstable", |
| "languages": [ |
| "C++17", |
| "C++20" |
| ] |
| }, |
| "pw_grpc": { |
| "tagline": "pw_rpc over gRPC", |
| "status": "unstable", |
| "languages": [ |
| "C++17", |
| "C++20" |
| ] |
| }, |
| "pw_hdlc": { |
| "tagline": "Simple, robust, and efficient serial communication", |
| "status": "stable", |
| "size": "1400 to 2600 bytes", |
| "languages": [ |
| "Python", |
| "C++17", |
| "TypeScript" |
| ] |
| }, |
| "pw_hex_dump": { |
| "tagline": "Handy hexdump utilities", |
| "status": "stable", |
| "languages": [ |
| "C++17" |
| ] |
| }, |
| "pw_i2c": { |
| "tagline": "Cross-platform I2C API with interactive debugging", |
| "status": "stable", |
| "languages": [ |
| "C++17" |
| ] |
| }, |
| "pw_i2c_linux": { |
| "tagline": "Linux userspace implementation for pw_i2c", |
| "status": "stable", |
| "languages": [ |
| "C++17" |
| ] |
| }, |
| "pw_i2c_mcuxpresso": { |
| "tagline": "NXP MCUXpresso SDK implementation for pw_i2c", |
| "status": "stable", |
| "languages": [ |
| "C++17" |
| ] |
| }, |
| "pw_i2c_rp2040": { |
| "tagline": "Raspberry Pi Pico SDK implementation for pw_i2c", |
| "status": "stable", |
| "languages": [ |
| "C++17" |
| ] |
| }, |
| "pw_ide": { |
| "tagline": "Code editor and IDE support for Pigweed projects", |
| "status": "stable", |
| "languages": [ |
| "C++", |
| "CLI", |
| "Python", |
| "VS Code" |
| ] |
| }, |
| "pw_json": { |
| "tagline": "Simple, efficient C++ JSON serialization", |
| "status": "stable", |
| "languages": [ |
| "C++17" |
| ] |
| }, |
| "pw_kvs": { |
| "tagline": "Lightweight, persistent key-value store", |
| "status": "stable", |
| "size": "~12 kB", |
| "languages": [ |
| "C++17" |
| ] |
| }, |
| "pw_log": { |
| "tagline": "Robust and portable logging for embedded projects", |
| "status": "stable", |
| "languages": [ |
| "C++", |
| "Java", |
| "Python", |
| "Rust" |
| ] |
| }, |
| "pw_log_android": { |
| "tagline": "Android logging backend", |
| "status": "unstable", |
| "languages": [ |
| "C++" |
| ] |
| }, |
| "pw_log_fuchsia": { |
| "tagline": "Fuchsia logging backend", |
| "status": "experimental", |
| "languages": [ |
| "C", |
| "C++" |
| ] |
| }, |
| "pw_malloc": { |
| "tagline": "Replacement interface for standard libc dynamic memory operations", |
| "status": "stable", |
| "languages": [ |
| "C", |
| "C++" |
| ] |
| }, |
| "pw_multibuf": { |
| "tagline": "A buffer API optimized for zero-copy messaging", |
| "status": "unstable", |
| "languages": [ |
| "C++17" |
| ] |
| }, |
| "pw_numeric": { |
| "tagline": "Efficient mathematical utilities for embedded", |
| "status": "stable", |
| "languages": [ |
| "C++" |
| ] |
| }, |
| "pw_perf_test": { |
| "tagline": "Micro-benchmarks that are easy to write and run", |
| "status": "unstable", |
| "languages": [ |
| "C++17" |
| ] |
| }, |
| "pw_preprocessor": { |
| "tagline": "Helpful preprocessor macros", |
| "status": "stable", |
| "languages": [ |
| "C", |
| "C++" |
| ] |
| }, |
| "pw_presubmit": { |
| "tagline": "Python tools for running presubmit checks and linters", |
| "status": "stable", |
| "languages": [ |
| "Python" |
| ] |
| }, |
| "pw_protobuf": { |
| "tagline": "Expressive interface for encoding and decoding protocol buffers", |
| "status": "stable", |
| "languages": [ |
| "C++" |
| ] |
| }, |
| "pw_random_fuchsia": { |
| "tagline": "Fuchsia implementation of pw_random", |
| "status": "experimental", |
| "languages": [] |
| }, |
| "pw_result": { |
| "tagline": "Error propagation primitives: value-or-error", |
| "status": "stable", |
| "languages": [ |
| "C++17" |
| ] |
| }, |
| "pw_router": { |
| "tagline": "Transport-agnostic packet routing", |
| "status": "experimental", |
| "languages": [ |
| "C++" |
| ] |
| }, |
| "pw_rpc": { |
| "tagline": "Efficient, low-code-size RPC system for embedded devices", |
| "status": "stable", |
| "languages": [ |
| "C++", |
| "Java", |
| "JavaScript", |
| "Python", |
| "TypeScript" |
| ] |
| }, |
| "pw_sensor": { |
| "tagline": "A modular way to see the world", |
| "status": "experimental", |
| "languages": [ |
| "Python", |
| "C++17" |
| ] |
| }, |
| "pw_software_update": { |
| "tagline": "Secure software delivery", |
| "status": "experimental", |
| "languages": [ |
| "Python", |
| "C++17" |
| ] |
| }, |
| "pw_span": { |
| "tagline": "std::span for C++17", |
| "status": "stable", |
| "languages": [ |
| "C++17", |
| "C++20" |
| ] |
| }, |
| "pw_spi_linux": { |
| "tagline": "SPI interface for Linux userspace", |
| "status": "unstable", |
| "languages": [ |
| "C++17", |
| "C++20" |
| ] |
| }, |
| "pw_spi_rp2040": { |
| "tagline": "Raspberry Pi RP2040 backend for pw_spi", |
| "status": "unstable", |
| "languages": [ |
| "C++" |
| ] |
| }, |
| "pw_status": { |
| "tagline": "Exception-free error propagation for embedded", |
| "status": "stable", |
| "languages": [ |
| "C++17", |
| "C", |
| "Python", |
| "Java", |
| "TypeScript", |
| "Rust" |
| ] |
| }, |
| "pw_stream": { |
| "tagline": "A foundational interface for streaming data", |
| "status": "stable", |
| "languages": [ |
| "C++", |
| "Rust" |
| ] |
| }, |
| "pw_string": { |
| "tagline": "Efficient, easy, and safe string manipulation", |
| "status": "stable", |
| "size": "500 to 1500 bytes", |
| "languages": [ |
| "C++17" |
| ] |
| }, |
| "pw_target_runner": { |
| "tagline": "gRPC server for running executables in parallel", |
| "status": "stable", |
| "languages": [ |
| "Go" |
| ] |
| }, |
| "pw_tokenizer": { |
| "tagline": "Compress strings to shrink logs by +75%", |
| "status": "stable", |
| "size": "50% reduction in log size", |
| "languages": [ |
| "C++", |
| "C11", |
| "Python", |
| "Rust", |
| "TypeScript", |
| "Java" |
| ] |
| }, |
| "pw_toolchain": { |
| "tagline": "Embedded toolchains for GN-based Pigweed projects", |
| "status": "stable", |
| "languages": [ |
| "GN" |
| ] |
| }, |
| "pw_toolchain_bazel": { |
| "tagline": "A modular toolkit for declaring C/C++ toolchains in Bazel", |
| "status": "unstable", |
| "languages": [ |
| "Starlark" |
| ] |
| }, |
| "pw_uart": { |
| "tagline": "Core interfaces for UART communication", |
| "status": "unstable", |
| "languages": [ |
| "C++" |
| ] |
| }, |
| "pw_uart_mcuxpresso": { |
| "tagline": "NXP MCUXpresso SDK implementation for pw_uart", |
| "status": "unstable", |
| "languages": [ |
| "C++" |
| ] |
| }, |
| "pw_unit_test": { |
| "tagline": "GoogleTest for embedded", |
| "status": "stable" |
| }, |
| "pw_varint": { |
| "tagline": "Functions for encoding and decoding variable length integers", |
| "status": "stable", |
| "languages": [ |
| "C", |
| "C++", |
| "Rust" |
| ] |
| }, |
| "pw_watch": { |
| "tagline": "Embedded development file system watcher", |
| "status": "stable" |
| } |
| } |