1{ 2 "pw_alignment": { 3 "tagline": "Natural object alignment, guaranteed", 4 "status": "stable", 5 "languages": [ 6 "C++17" 7 ] 8 }, 9 "pw_allocator": { 10 "tagline": "Flexible, safe, and measurable memory allocation", 11 "status": "unstable", 12 "languages": [ 13 "C++17" 14 ], 15 "size": "400 to 1800 bytes" 16 }, 17 "pw_analog": { 18 "tagline": "Analog-to-digital converter libraries and utilities", 19 "status": "stable", 20 "languages": [ 21 "C++" 22 ] 23 }, 24 "pw_android_toolchain": { 25 "tagline": "GN toolchains for the Android NDK", 26 "status": "unstable", 27 "languages": [ 28 "GN" 29 ] 30 }, 31 "pw_arduino_build": { 32 "tagline": "Main function wrapper and build utilities for Arduino", 33 "status": "stable", 34 "languages": [ 35 "C++", 36 "GN" 37 ] 38 }, 39 "pw_assert": { 40 "tagline": "Flexible crash triggering and handling", 41 "status": "stable", 42 "languages": [ 43 "C", 44 "C++" 45 ] 46 }, 47 "pw_assert_fuchsia": { 48 "tagline": "pw_assert backend for Fuchsia", 49 "status": "experimental", 50 "languages": [ 51 "C", 52 "C++" 53 ] 54 }, 55 "pw_async": { 56 "tagline": "Portable APIs for asynchronous code", 57 "status": "deprecated", 58 "languages": [ 59 "C++" 60 ] 61 }, 62 "pw_async2": { 63 "tagline": "Cooperative async tasks for embedded", 64 "status": "experimental", 65 "languages": [ 66 "C++17" 67 ] 68 }, 69 "pw_async_fuchsia": { 70 "tagline": "Fuchsia backend for pw_async", 71 "status": "experimental", 72 "languages": [ 73 "C", 74 "C++" 75 ] 76 }, 77 "pw_base64": { 78 "tagline": "Base64 encoding, decoding, and validating", 79 "status": "stable", 80 "languages": [ 81 "C", 82 "C++", 83 "Rust" 84 ] 85 }, 86 "pw_bloat": { 87 "tagline": "Utilities for generating binary size reports", 88 "status": "stable", 89 "languages": [ 90 "C++", 91 "GN" 92 ] 93 }, 94 "pw_blob_store": { 95 "tagline": "Flash-backed persistent storage for data blobs", 96 "status": "stable", 97 "languages": [ 98 "C++" 99 ] 100 }, 101 "pw_bluetooth": { 102 "tagline": "Host-layer Bluetooth Low Energy APIs and utilities", 103 "status": "unstable", 104 "languages": [ 105 "C++" 106 ] 107 }, 108 "pw_bluetooth_hci": { 109 "tagline": "Bluetooth Host Controller Interface utilities", 110 "status": "stable", 111 "languages": [ 112 "C++" 113 ] 114 }, 115 "pw_bluetooth_profiles": { 116 "tagline": "Bluetooth profiles built on top of pw_bluetooth", 117 "status": "unstable", 118 "languages": [ 119 "C++" 120 ] 121 }, 122 "pw_bluetooth_proxy": { 123 "tagline": "Lightweight proxy for augmenting Bluetooth functionality", 124 "status": "unstable", 125 "languages": [ 126 "C++17" 127 ] 128 }, 129 "pw_bluetooth_sapphire": { 130 "tagline": "Battle-tested Bluetooth with rock-solid reliability", 131 "status": "unstable", 132 "size": "500 to 700 kB", 133 "languages": [ 134 "C++17" 135 ] 136 }, 137 "pw_boot": { 138 "tagline": "Simplified booting for C++ targets", 139 "status": "stable", 140 "languages": [ 141 "C++" 142 ] 143 }, 144 "pw_boot_cortex_m": { 145 "tagline": "ARM Cortex-M backend for pw_boot", 146 "status": "stable", 147 "languages": [ 148 "C", 149 "C++" 150 ] 151 }, 152 "pw_build": { 153 "tagline": "Integrations for Bazel, GN, and CMake", 154 "status": "stable", 155 "languages": [ 156 "Bazel", 157 "CMake", 158 "GN", 159 "Rust" 160 ] 161 }, 162 "pw_build_android": { 163 "tagline": "Utilities for using Pigweed in Android platform", 164 "status": "unstable", 165 "languages": [ 166 "C++20" 167 ] 168 }, 169 "pw_build_info": { 170 "tagline": "Generate, embed, and parse build-related information", 171 "status": "stable", 172 "languages": [ 173 "Bazel", 174 "CMake", 175 "GN" 176 ] 177 }, 178 "pw_build_mcuxpresso": { 179 "tagline": "Utilities for building NXP MCUXpresso SDK targets", 180 "status": "stable", 181 "languages": [ 182 "Bazel", 183 "GN" 184 ] 185 }, 186 "pw_bytes": { 187 "tagline": "Utilities for manipulating binary data", 188 "status": "stable", 189 "languages": [ 190 "C++", 191 "Rust" 192 ] 193 }, 194 "pw_channel": { 195 "tagline": "Async, zero-copy API for sending and receiving bytes or datagrams", 196 "status": "experimental", 197 "languages": [ 198 "C++" 199 ] 200 }, 201 "pw_checksum": { 202 "tagline": "Checksum calculation API", 203 "status": "stable", 204 "languages": [ 205 "C", 206 "C++" 207 ] 208 }, 209 "pw_chre": { 210 "tagline": "Android Context Hub Runtime Environment backend", 211 "status": "experimental", 212 "languages": [ 213 "C++" 214 ] 215 }, 216 "pw_chrono": { 217 "tagline": "Portable std::chrono for constrained embedded devices", 218 "status": "stable", 219 "languages": [ 220 "C", 221 "C++" 222 ] 223 }, 224 "pw_cli": { 225 "tagline": "Enhance and accelerate custom command-line tooling", 226 "status": "stable", 227 "languages": [ 228 "Python" 229 ] 230 }, 231 "pw_clock_tree": { 232 "tagline": "Clock tree management for embedded devices", 233 "status": "unstable", 234 "languages": [ 235 "C++17" 236 ] 237 }, 238 "pw_clock_tree_mcuxpresso": { 239 "tagline": "NXP MCUXpresso SDK implementation for pw_clock_tree", 240 "status": "unstable", 241 "languages": [ 242 "C++17" 243 ] 244 }, 245 "pw_console": { 246 "tagline": "Multi-purpose pluggable interactive console for dev & manufacturing", 247 "status": "stable", 248 "size": "N/A (host) but works best with pw_rpc on-device", 249 "languages": [ 250 "Python" 251 ] 252 }, 253 "pw_digital_io_linux": { 254 "tagline": "Digital I/O interface for Linux userspace", 255 "status": "unstable", 256 "languages": [ 257 "C++17" 258 ] 259 }, 260 "pw_display": { 261 "tagline": "Graphic display support and framebuffer management", 262 "status": "experimental", 263 "languages": [] 264 }, 265 "pw_dma_mcuxpresso": { 266 "tagline": "DMA helpers for MCUXpresso SDK", 267 "status": "unstable", 268 "languages": [ 269 "C++17" 270 ] 271 }, 272 "pw_docgen": { 273 "tagline": "Documentation generator for Pigweed-based projects", 274 "status": "stable", 275 "languages": [ 276 "GN" 277 ] 278 }, 279 "pw_elf": { 280 "tagline": "ELF file support", 281 "status": "experimental", 282 "languages": [ 283 "C++17" 284 ] 285 }, 286 "pw_emu": { 287 "tagline": "Flexible emulators frontend", 288 "status": "experimental", 289 "languages": [ 290 "Python", 291 "CLI" 292 ] 293 }, 294 "pw_env_setup_zephyr": { 295 "tagline": "Zephyr utilities", 296 "status": "experimental" 297 }, 298 "pw_format": { 299 "tagline": "String formatting", 300 "status": "experimental", 301 "languages": [ 302 "Rust" 303 ] 304 }, 305 "pw_function": { 306 "tagline": "Embedded-friendly std::function", 307 "status": "stable", 308 "languages": [ 309 "C++17" 310 ] 311 }, 312 "pw_fuzzer": { 313 "tagline": "Better C++ code through easier fuzzing", 314 "status": "unstable", 315 "languages": [ 316 "C++17", 317 "C++20" 318 ] 319 }, 320 "pw_grpc": { 321 "tagline": "pw_rpc over gRPC", 322 "status": "unstable", 323 "languages": [ 324 "C++17", 325 "C++20" 326 ] 327 }, 328 "pw_hdlc": { 329 "tagline": "Simple, robust, and efficient serial communication", 330 "status": "stable", 331 "size": "1400 to 2600 bytes", 332 "languages": [ 333 "Python", 334 "C++17", 335 "TypeScript" 336 ] 337 }, 338 "pw_hex_dump": { 339 "tagline": "Handy hexdump utilities", 340 "status": "stable", 341 "languages": [ 342 "C++17" 343 ] 344 }, 345 "pw_i2c": { 346 "tagline": "Cross-platform I2C API with interactive debugging", 347 "status": "stable", 348 "languages": [ 349 "C++17" 350 ] 351 }, 352 "pw_i2c_linux": { 353 "tagline": "Linux userspace implementation for pw_i2c", 354 "status": "stable", 355 "languages": [ 356 "C++17" 357 ] 358 }, 359 "pw_i2c_mcuxpresso": { 360 "tagline": "NXP MCUXpresso SDK implementation for pw_i2c", 361 "status": "stable", 362 "languages": [ 363 "C++17" 364 ] 365 }, 366 "pw_i2c_rp2040": { 367 "tagline": "Raspberry Pi Pico SDK implementation for pw_i2c", 368 "status": "stable", 369 "languages": [ 370 "C++17" 371 ] 372 }, 373 "pw_ide": { 374 "tagline": "Code editor and IDE support for Pigweed projects", 375 "status": "stable", 376 "languages": [ 377 "C++", 378 "CLI", 379 "Python", 380 "VS Code" 381 ] 382 }, 383 "pw_json": { 384 "tagline": "Simple, efficient C++ JSON serialization", 385 "status": "stable", 386 "languages": [ 387 "C++17" 388 ] 389 }, 390 "pw_kvs": { 391 "tagline": "Lightweight, persistent key-value store", 392 "status": "stable", 393 "size": "~12 kB", 394 "languages": [ 395 "C++17" 396 ] 397 }, 398 "pw_log": { 399 "tagline": "Robust and portable logging for embedded projects", 400 "status": "stable", 401 "languages": [ 402 "C++", 403 "Java", 404 "Python", 405 "Rust" 406 ] 407 }, 408 "pw_log_android": { 409 "tagline": "Android logging backend", 410 "status": "unstable", 411 "languages": [ 412 "C++" 413 ] 414 }, 415 "pw_log_fuchsia": { 416 "tagline": "Fuchsia logging backend", 417 "status": "experimental", 418 "languages": [ 419 "C", 420 "C++" 421 ] 422 }, 423 "pw_malloc": { 424 "tagline": "Replacement interface for standard libc dynamic memory operations", 425 "status": "stable", 426 "languages": [ 427 "C", 428 "C++" 429 ] 430 }, 431 "pw_multibuf": { 432 "tagline": "A buffer API optimized for zero-copy messaging", 433 "status": "unstable", 434 "languages": [ 435 "C++17" 436 ] 437 }, 438 "pw_numeric": { 439 "tagline": "Efficient mathematical utilities for embedded", 440 "status": "stable", 441 "languages": [ 442 "C++" 443 ] 444 }, 445 "pw_perf_test": { 446 "tagline": "Micro-benchmarks that are easy to write and run", 447 "status": "unstable", 448 "languages": [ 449 "C++17" 450 ] 451 }, 452 "pw_preprocessor": { 453 "tagline": "Helpful preprocessor macros", 454 "status": "stable", 455 "languages": [ 456 "C", 457 "C++" 458 ] 459 }, 460 "pw_presubmit": { 461 "tagline": "Python tools for running presubmit checks and linters", 462 "status": "stable", 463 "languages": [ 464 "Python" 465 ] 466 }, 467 "pw_protobuf": { 468 "tagline": "Expressive interface for encoding and decoding protocol buffers", 469 "status": "stable", 470 "languages": [ 471 "C++" 472 ] 473 }, 474 "pw_random_fuchsia": { 475 "tagline": "Fuchsia implementation of pw_random", 476 "status": "experimental", 477 "languages": [] 478 }, 479 "pw_result": { 480 "tagline": "Error propagation primitives: value-or-error", 481 "status": "stable", 482 "languages": [ 483 "C++17" 484 ] 485 }, 486 "pw_router": { 487 "tagline": "Transport-agnostic packet routing", 488 "status": "experimental", 489 "languages": [ 490 "C++" 491 ] 492 }, 493 "pw_rpc": { 494 "tagline": "Efficient, low-code-size RPC system for embedded devices", 495 "status": "stable", 496 "languages": [ 497 "C++", 498 "Java", 499 "JavaScript", 500 "Python", 501 "TypeScript" 502 ] 503 }, 504 "pw_sensor": { 505 "tagline": "A modular way to see the world", 506 "status": "experimental", 507 "languages": [ 508 "Python", 509 "C++17" 510 ] 511 }, 512 "pw_software_update": { 513 "tagline": "Secure software delivery", 514 "status": "experimental", 515 "languages": [ 516 "Python", 517 "C++17" 518 ] 519 }, 520 "pw_span": { 521 "tagline": "std::span for C++17", 522 "status": "stable", 523 "languages": [ 524 "C++17", 525 "C++20" 526 ] 527 }, 528 "pw_spi_linux": { 529 "tagline": "SPI interface for Linux userspace", 530 "status": "unstable", 531 "languages": [ 532 "C++17", 533 "C++20" 534 ] 535 }, 536 "pw_spi_rp2040": { 537 "tagline": "Raspberry Pi RP2040 backend for pw_spi", 538 "status": "unstable", 539 "languages": [ 540 "C++" 541 ] 542 }, 543 "pw_status": { 544 "tagline": "Exception-free error propagation for embedded", 545 "status": "stable", 546 "languages": [ 547 "C++17", 548 "C", 549 "Python", 550 "Java", 551 "TypeScript", 552 "Rust" 553 ] 554 }, 555 "pw_stream": { 556 "tagline": "A foundational interface for streaming data", 557 "status": "stable", 558 "languages": [ 559 "C++", 560 "Rust" 561 ] 562 }, 563 "pw_string": { 564 "tagline": "Efficient, easy, and safe string manipulation", 565 "status": "stable", 566 "size": "500 to 1500 bytes", 567 "languages": [ 568 "C++17" 569 ] 570 }, 571 "pw_target_runner": { 572 "tagline": "gRPC server for running executables in parallel", 573 "status": "stable", 574 "languages": [ 575 "Go" 576 ] 577 }, 578 "pw_tokenizer": { 579 "tagline": "Compress strings to shrink logs by +75%", 580 "status": "stable", 581 "size": "50% reduction in log size", 582 "languages": [ 583 "C++", 584 "C11", 585 "Python", 586 "Rust", 587 "TypeScript", 588 "Java" 589 ] 590 }, 591 "pw_toolchain": { 592 "tagline": "Embedded toolchains for GN-based Pigweed projects", 593 "status": "stable", 594 "languages": [ 595 "GN" 596 ] 597 }, 598 "pw_toolchain_bazel": { 599 "tagline": "A modular toolkit for declaring C/C++ toolchains in Bazel", 600 "status": "unstable", 601 "languages": [ 602 "Starlark" 603 ] 604 }, 605 "pw_uart": { 606 "tagline": "Core interfaces for UART communication", 607 "status": "unstable", 608 "languages": [ 609 "C++" 610 ] 611 }, 612 "pw_uart_mcuxpresso": { 613 "tagline": "NXP MCUXpresso SDK implementation for pw_uart", 614 "status": "unstable", 615 "languages": [ 616 "C++" 617 ] 618 }, 619 "pw_unit_test": { 620 "tagline": "GoogleTest for embedded", 621 "status": "stable" 622 }, 623 "pw_varint": { 624 "tagline": "Functions for encoding and decoding variable length integers", 625 "status": "stable", 626 "languages": [ 627 "C", 628 "C++", 629 "Rust" 630 ] 631 }, 632 "pw_watch": { 633 "tagline": "Embedded development file system watcher", 634 "status": "stable" 635 } 636} 637