{
  "pw_alignment": {
    "tagline": "Natural object alignment, guaranteed",
    "status": "stable",
    "languages": [
      "C++17"
    ]
  },
  "pw_allocator": {
    "tagline": "Flexible, safe, and measurable memory allocation",
    "status": "stable",
    "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_basic": {
    "status": "stable"
  },
  "pw_assert_fuchsia": {
    "tagline": "pw_assert backend for Fuchsia",
    "status": "experimental",
    "languages": [
      "C",
      "C++"
    ]
  },
  "pw_assert_log": {
    "status": "stable"
  },
  "pw_assert_tokenized": {
    "status": "stable"
  },
  "pw_assert_trap": {
    "status": "stable"
  },
  "pw_assert_zephyr": {
    "status": "stable"
  },
  "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_async2_basic": {
    "status": "unstable"
  },
  "pw_async2_epoll": {
    "status": "unstable"
  },
  "pw_async_basic": {
    "status": "unstable"
  },
  "pw_async_fuchsia": {
    "tagline": "Fuchsia backend for pw_async",
    "status": "experimental",
    "languages": [
      "C",
      "C++"
    ]
  },
  "pw_atomic": {
    "tagline": "Software implementations of atomic operations",
    "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": "stable",
    "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"
    ],
    "size": "0 to 150 bytes"
  },
  "pw_change": {
    "tagline": "Commands that operate on Gerrit changes and Git commits",
    "status": "experimental",
    "languages": [
      "Python"
    ]
  },
  "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_chrono_embos": {
    "status": "stable"
  },
  "pw_chrono_freertos": {
    "status": "stable"
  },
  "pw_chrono_rp2040": {
    "status": "stable"
  },
  "pw_chrono_stl": {
    "status": "stable"
  },
  "pw_chrono_threadx": {
    "status": "stable"
  },
  "pw_chrono_zephyr": {
    "status": "stable"
  },
  "pw_cli": {
    "tagline": "Enhance and accelerate custom command-line tooling",
    "status": "stable",
    "languages": [
      "Python"
    ]
  },
  "pw_cli_analytics": {
    "status": "stable"
  },
  "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_compilation_testing": {
    "status": "stable"
  },
  "pw_config_loader": {
    "status": "stable"
  },
  "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_containers": {
    "tagline": "Generic collections of objects for embedded devices",
    "status": "stable",
    "size": "200 to 3300 bytes",
    "languages": [
      "C++17"
    ]
  },
  "pw_cpu_exception": {
    "status": "stable"
  },
  "pw_cpu_exception_cortex_m": {
    "status": "stable"
  },
  "pw_cpu_exception_risc_v": {
    "status": "stable"
  },
  "pw_crypto": {
    "status": "stable"
  },
  "pw_digital_io": {
    "tagline": "Digital I/O interface",
    "status": "stable",
    "languages": [
      "C++"
    ]
  },
  "pw_digital_io_linux": {
    "tagline": "Digital I/O interface for Linux userspace",
    "status": "stable",
    "languages": [
      "C++17"
    ]
  },
  "pw_digital_io_mcuxpresso": {
    "tagline": "Digital I/O for NXP MCUXpresso",
    "status": "stable",
    "languages": [
      "C++"
    ]
  },
  "pw_digital_io_rp2040": {
    "status": "stable"
  },
  "pw_digital_io_zephyr": {
    "status": "experimental",
    "languages": [
      "C++"
    ]
  },
  "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_doctor": {
    "status": "stable"
  },
  "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": {
    "status": "stable"
  },
  "pw_env_setup_zephyr": {
    "tagline": "Zephyr utilities",
    "status": "experimental"
  },
  "pw_file": {
    "status": "unstable"
  },
  "pw_flatbuffers": {
    "status": "experimental",
    "languages": []
  },
  "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_i2c_zephyr": {
    "status": "experimental",
    "languages": []
  },
  "pw_ide": {
    "tagline": "Code editor and IDE support for Pigweed projects",
    "status": "stable",
    "languages": [
      "C++",
      "CLI",
      "Python",
      "VS Code"
    ]
  },
  "pw_interrupt": {
    "status": "unstable"
  },
  "pw_interrupt_cortex_m": {
    "status": "unstable"
  },
  "pw_interrupt_freertos": {
    "status": "experimental",
    "languages": []
  },
  "pw_interrupt_zephyr": {
    "status": "unstable"
  },
  "pw_intrusive_ptr": {
    "status": "unstable"
  },
  "pw_json": {
    "tagline": "Simple, efficient C++ JSON serialization",
    "status": "stable",
    "languages": [
      "C++17"
    ]
  },
  "pw_kernel": {
    "tagline": "An experimental kernel for embedded systems",
    "status": "experimental",
    "languages": [
      "Rust"
    ],
    "size": "~10-16 kB"
  },
  "pw_kvs": {
    "tagline": "Lightweight, persistent key-value store",
    "status": "stable",
    "size": "~12 kB",
    "languages": [
      "C++17"
    ]
  },
  "pw_libc": {
    "status": "unstable"
  },
  "pw_libcxx": {
    "status": "unstable"
  },
  "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": "stable",
    "languages": [
      "C++"
    ]
  },
  "pw_log_basic": {
    "status": "stable"
  },
  "pw_log_fuchsia": {
    "tagline": "Fuchsia logging backend",
    "status": "experimental",
    "languages": [
      "C",
      "C++"
    ]
  },
  "pw_log_null": {
    "status": "stable"
  },
  "pw_log_rpc": {
    "status": "stable"
  },
  "pw_log_string": {
    "status": "stable"
  },
  "pw_log_tokenized": {
    "status": "stable"
  },
  "pw_log_zephyr": {
    "status": "stable"
  },
  "pw_malloc": {
    "tagline": "Replacement interface for standard libc dynamic memory operations",
    "status": "stable",
    "languages": [
      "C",
      "C++"
    ]
  },
  "pw_malloc_freelist": {
    "status": "stable"
  },
  "pw_malloc_freertos": {
    "status": "stable"
  },
  "pw_metric": {
    "status": "stable"
  },
  "pw_minimal_cpp_stdlib": {
    "status": "stable"
  },
  "pw_module": {
    "status": "stable"
  },
  "pw_multibuf": {
    "tagline": "A buffer API optimized for zero-copy messaging",
    "status": "unstable",
    "languages": [
      "C++17"
    ]
  },
  "pw_multisink": {
    "status": "stable"
  },
  "pw_numeric": {
    "tagline": "Efficient mathematical utilities for embedded",
    "status": "stable",
    "languages": [
      "C++"
    ]
  },
  "pw_package": {
    "status": "stable"
  },
  "pw_perf_test": {
    "tagline": "Micro-benchmarks that are easy to write and run",
    "status": "unstable",
    "languages": [
      "C++17"
    ]
  },
  "pw_persistent_ram": {
    "status": "stable"
  },
  "pw_polyfill": {
    "status": "stable"
  },
  "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_protobuf_compiler": {
    "status": "stable"
  },
  "pw_random": {
    "status": "stable"
  },
  "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_ring_buffer": {
    "status": "stable"
  },
  "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_rpc_transport": {
    "status": "unstable"
  },
  "pw_rust": {
    "status": "experimental"
  },
  "pw_sensor": {
    "tagline": "A modular way to see the world",
    "status": "experimental",
    "languages": [
      "Python",
      "C++17"
    ]
  },
  "pw_snapshot": {
    "status": "stable"
  },
  "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": {
    "status": "stable"
  },
  "pw_spi_linux": {
    "tagline": "SPI interface for Linux userspace",
    "status": "unstable",
    "languages": [
      "C++17",
      "C++20"
    ]
  },
  "pw_spi_mcuxpresso": {
    "status": "stable"
  },
  "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_stm32cube_build": {
    "status": "stable"
  },
  "pw_stream": {
    "tagline": "A foundational interface for streaming data",
    "status": "stable",
    "languages": [
      "C++",
      "Rust"
    ]
  },
  "pw_stream_shmem_mcuxpresso": {
    "status": "stable"
  },
  "pw_stream_uart_linux": {
    "status": "stable"
  },
  "pw_stream_uart_mcuxpresso": {
    "status": "stable"
  },
  "pw_string": {
    "tagline": "Efficient, easy, and safe string manipulation",
    "status": "stable",
    "size": "500 to 1500 bytes",
    "languages": [
      "C++17"
    ]
  },
  "pw_symbolizer": {
    "status": "stable"
  },
  "pw_sync": {
    "status": "stable"
  },
  "pw_sync_baremetal": {
    "status": "stable"
  },
  "pw_sync_embos": {
    "status": "stable"
  },
  "pw_sync_freertos": {
    "status": "stable"
  },
  "pw_sync_stl": {
    "status": "stable"
  },
  "pw_sync_threadx": {
    "status": "stable"
  },
  "pw_sync_zephyr": {
    "status": "stable"
  },
  "pw_sys_io": {
    "status": "stable"
  },
  "pw_sys_io_ambiq_sdk": {
    "status": "stable"
  },
  "pw_sys_io_arduino": {
    "status": "stable"
  },
  "pw_sys_io_baremetal_lm3s6965evb": {
    "status": "stable"
  },
  "pw_sys_io_baremetal_stm32f429": {
    "status": "stable"
  },
  "pw_sys_io_emcraft_sf2": {
    "status": "stable"
  },
  "pw_sys_io_mcuxpresso": {
    "status": "stable"
  },
  "pw_sys_io_rp2040": {
    "status": "stable"
  },
  "pw_sys_io_stdio": {
    "status": "stable"
  },
  "pw_sys_io_stm32cube": {
    "status": "stable"
  },
  "pw_sys_io_zephyr": {
    "status": "stable"
  },
  "pw_system": {
    "status": "unstable"
  },
  "pw_target_runner": {
    "tagline": "gRPC server for running executables in parallel",
    "status": "stable",
    "languages": [
      "Go"
    ]
  },
  "pw_thread": {
    "status": "stable"
  },
  "pw_thread_embos": {
    "status": "stable"
  },
  "pw_thread_freertos": {
    "status": "stable"
  },
  "pw_thread_stl": {
    "status": "stable"
  },
  "pw_thread_threadx": {
    "status": "stable"
  },
  "pw_thread_zephyr": {
    "status": "stable"
  },
  "pw_tls_client": {
    "status": "stable"
  },
  "pw_tls_client_boringssl": {
    "status": "stable"
  },
  "pw_tls_client_mbedtls": {
    "status": "stable"
  },
  "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_trace": {
    "status": "stable"
  },
  "pw_trace_tokenized": {
    "status": "stable"
  },
  "pw_transfer": {
    "status": "stable"
  },
  "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_uuid": {
    "tagline": "128-bit universally unique identifier (UUID)",
    "status": "experimental"
  },
  "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"
  },
  "pw_web": {
    "status": "stable"
  },
  "pw_work_queue": {
    "status": "stable"
  }
}
