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_basic": { 48 "status": "stable" 49 }, 50 "pw_assert_fuchsia": { 51 "tagline": "pw_assert backend for Fuchsia", 52 "status": "experimental", 53 "languages": [ 54 "C", 55 "C++" 56 ] 57 }, 58 "pw_assert_log": { 59 "status": "stable" 60 }, 61 "pw_assert_tokenized": { 62 "status": "stable" 63 }, 64 "pw_assert_trap": { 65 "status": "stable" 66 }, 67 "pw_assert_zephyr": { 68 "status": "stable" 69 }, 70 "pw_async": { 71 "tagline": "Portable APIs for asynchronous code", 72 "status": "deprecated", 73 "languages": [ 74 "C++" 75 ] 76 }, 77 "pw_async2": { 78 "tagline": "Cooperative async tasks for embedded", 79 "status": "experimental", 80 "languages": [ 81 "C++17" 82 ] 83 }, 84 "pw_async2_basic": { 85 "status": "unstable" 86 }, 87 "pw_async2_epoll": { 88 "status": "unstable" 89 }, 90 "pw_async_basic": { 91 "status": "unstable" 92 }, 93 "pw_async_fuchsia": { 94 "tagline": "Fuchsia backend for pw_async", 95 "status": "experimental", 96 "languages": [ 97 "C", 98 "C++" 99 ] 100 }, 101 "pw_atomic": { 102 "tagline": "Software implementations of atomic operations", 103 "status": "experimental", 104 "languages": [ 105 "C", 106 "C++" 107 ] 108 }, 109 "pw_base64": { 110 "tagline": "Base64 encoding, decoding, and validating", 111 "status": "stable", 112 "languages": [ 113 "C", 114 "C++", 115 "Rust" 116 ] 117 }, 118 "pw_bloat": { 119 "tagline": "Utilities for generating binary size reports", 120 "status": "stable", 121 "languages": [ 122 "C++", 123 "GN" 124 ] 125 }, 126 "pw_blob_store": { 127 "tagline": "Flash-backed persistent storage for data blobs", 128 "status": "stable", 129 "languages": [ 130 "C++" 131 ] 132 }, 133 "pw_bluetooth": { 134 "tagline": "Host-layer Bluetooth Low Energy APIs and utilities", 135 "status": "unstable", 136 "languages": [ 137 "C++" 138 ] 139 }, 140 "pw_bluetooth_hci": { 141 "tagline": "Bluetooth Host Controller Interface utilities", 142 "status": "stable", 143 "languages": [ 144 "C++" 145 ] 146 }, 147 "pw_bluetooth_profiles": { 148 "tagline": "Bluetooth profiles built on top of pw_bluetooth", 149 "status": "unstable", 150 "languages": [ 151 "C++" 152 ] 153 }, 154 "pw_bluetooth_proxy": { 155 "tagline": "Lightweight proxy for augmenting Bluetooth functionality", 156 "status": "unstable", 157 "languages": [ 158 "C++17" 159 ] 160 }, 161 "pw_bluetooth_sapphire": { 162 "tagline": "Battle-tested Bluetooth with rock-solid reliability", 163 "status": "unstable", 164 "size": "500 to 700 kB", 165 "languages": [ 166 "C++17" 167 ] 168 }, 169 "pw_boot": { 170 "tagline": "Simplified booting for C++ targets", 171 "status": "stable", 172 "languages": [ 173 "C++" 174 ] 175 }, 176 "pw_boot_cortex_m": { 177 "tagline": "ARM Cortex-M backend for pw_boot", 178 "status": "stable", 179 "languages": [ 180 "C", 181 "C++" 182 ] 183 }, 184 "pw_build": { 185 "tagline": "Integrations for Bazel, GN, and CMake", 186 "status": "stable", 187 "languages": [ 188 "Bazel", 189 "CMake", 190 "GN", 191 "Rust" 192 ] 193 }, 194 "pw_build_android": { 195 "tagline": "Utilities for using Pigweed in Android platform", 196 "status": "stable", 197 "languages": [ 198 "C++20" 199 ] 200 }, 201 "pw_build_info": { 202 "tagline": "Generate, embed, and parse build-related information", 203 "status": "stable", 204 "languages": [ 205 "Bazel", 206 "CMake", 207 "GN" 208 ] 209 }, 210 "pw_build_mcuxpresso": { 211 "tagline": "Utilities for building NXP MCUXpresso SDK targets", 212 "status": "stable", 213 "languages": [ 214 "Bazel", 215 "GN" 216 ] 217 }, 218 "pw_bytes": { 219 "tagline": "Utilities for manipulating binary data", 220 "status": "stable", 221 "languages": [ 222 "C++", 223 "Rust" 224 ] 225 }, 226 "pw_channel": { 227 "tagline": "Async, zero-copy API for sending and receiving bytes or datagrams", 228 "status": "experimental", 229 "languages": [ 230 "C++" 231 ] 232 }, 233 "pw_checksum": { 234 "tagline": "Checksum calculation API", 235 "status": "stable", 236 "languages": [ 237 "C", 238 "C++" 239 ] 240 }, 241 "pw_chre": { 242 "tagline": "Android Context Hub Runtime Environment backend", 243 "status": "experimental", 244 "languages": [ 245 "C++" 246 ] 247 }, 248 "pw_chrono": { 249 "tagline": "Portable std::chrono for constrained embedded devices", 250 "status": "stable", 251 "languages": [ 252 "C", 253 "C++" 254 ] 255 }, 256 "pw_chrono_embos": { 257 "status": "stable" 258 }, 259 "pw_chrono_freertos": { 260 "status": "stable" 261 }, 262 "pw_chrono_rp2040": { 263 "status": "stable" 264 }, 265 "pw_chrono_stl": { 266 "status": "stable" 267 }, 268 "pw_chrono_threadx": { 269 "status": "stable" 270 }, 271 "pw_chrono_zephyr": { 272 "status": "stable" 273 }, 274 "pw_cli": { 275 "tagline": "Enhance and accelerate custom command-line tooling", 276 "status": "stable", 277 "languages": [ 278 "Python" 279 ] 280 }, 281 "pw_cli_analytics": { 282 "status": "stable" 283 }, 284 "pw_clock_tree": { 285 "tagline": "Clock tree management for embedded devices", 286 "status": "unstable", 287 "languages": [ 288 "C++17" 289 ] 290 }, 291 "pw_clock_tree_mcuxpresso": { 292 "tagline": "NXP MCUXpresso SDK implementation for pw_clock_tree", 293 "status": "unstable", 294 "languages": [ 295 "C++17" 296 ] 297 }, 298 "pw_compilation_testing": { 299 "status": "stable" 300 }, 301 "pw_config_loader": { 302 "status": "stable" 303 }, 304 "pw_console": { 305 "tagline": "Multi-purpose pluggable interactive console for dev & manufacturing", 306 "status": "stable", 307 "size": "N/A (host) but works best with pw_rpc on-device", 308 "languages": [ 309 "Python" 310 ] 311 }, 312 "pw_containers": { 313 "tagline": "Generic collections of objects for embedded devices", 314 "status": "stable", 315 "size": "200 to 3300 bytes", 316 "languages": [ 317 "C++17" 318 ] 319 }, 320 "pw_cpu_exception": { 321 "status": "stable" 322 }, 323 "pw_cpu_exception_cortex_m": { 324 "status": "stable" 325 }, 326 "pw_cpu_exception_risc_v": { 327 "status": "stable" 328 }, 329 "pw_crypto": { 330 "status": "stable" 331 }, 332 "pw_digital_io": { 333 "tagline": "Digital I/O interface", 334 "status": "stable", 335 "languages": [ 336 "C++" 337 ] 338 }, 339 "pw_digital_io_linux": { 340 "tagline": "Digital I/O interface for Linux userspace", 341 "status": "stable", 342 "languages": [ 343 "C++17" 344 ] 345 }, 346 "pw_digital_io_mcuxpresso": { 347 "tagline": "Digital I/O for NXP MCUXpresso", 348 "status": "stable", 349 "languages": [ 350 "C++" 351 ] 352 }, 353 "pw_digital_io_rp2040": { 354 "status": "stable" 355 }, 356 "pw_display": { 357 "tagline": "Graphic display support and framebuffer management", 358 "status": "experimental", 359 "languages": [] 360 }, 361 "pw_dma_mcuxpresso": { 362 "tagline": "DMA helpers for MCUXpresso SDK", 363 "status": "unstable", 364 "languages": [ 365 "C++17" 366 ] 367 }, 368 "pw_docgen": { 369 "tagline": "Documentation generator for Pigweed-based projects", 370 "status": "stable", 371 "languages": [ 372 "GN" 373 ] 374 }, 375 "pw_doctor": { 376 "status": "stable" 377 }, 378 "pw_elf": { 379 "tagline": "ELF file support", 380 "status": "experimental", 381 "languages": [ 382 "C++17" 383 ] 384 }, 385 "pw_emu": { 386 "tagline": "Flexible emulators frontend", 387 "status": "experimental", 388 "languages": [ 389 "Python", 390 "CLI" 391 ] 392 }, 393 "pw_env_setup": { 394 "status": "stable" 395 }, 396 "pw_env_setup_zephyr": { 397 "tagline": "Zephyr utilities", 398 "status": "experimental" 399 }, 400 "pw_file": { 401 "status": "unstable" 402 }, 403 "pw_flatbuffers": { 404 "status": "experimental", 405 "languages": [] 406 }, 407 "pw_format": { 408 "tagline": "String formatting", 409 "status": "experimental", 410 "languages": [ 411 "Rust" 412 ] 413 }, 414 "pw_function": { 415 "tagline": "Embedded-friendly std::function", 416 "status": "stable", 417 "languages": [ 418 "C++17" 419 ] 420 }, 421 "pw_fuzzer": { 422 "tagline": "Better C++ code through easier fuzzing", 423 "status": "unstable", 424 "languages": [ 425 "C++17", 426 "C++20" 427 ] 428 }, 429 "pw_grpc": { 430 "tagline": "pw_rpc over gRPC", 431 "status": "unstable", 432 "languages": [ 433 "C++17", 434 "C++20" 435 ] 436 }, 437 "pw_hdlc": { 438 "tagline": "Simple, robust, and efficient serial communication", 439 "status": "stable", 440 "size": "1400 to 2600 bytes", 441 "languages": [ 442 "Python", 443 "C++17", 444 "TypeScript" 445 ] 446 }, 447 "pw_hex_dump": { 448 "tagline": "Handy hexdump utilities", 449 "status": "stable", 450 "languages": [ 451 "C++17" 452 ] 453 }, 454 "pw_i2c": { 455 "tagline": "Cross-platform I2C API with interactive debugging", 456 "status": "stable", 457 "languages": [ 458 "C++17" 459 ] 460 }, 461 "pw_i2c_linux": { 462 "tagline": "Linux userspace implementation for pw_i2c", 463 "status": "stable", 464 "languages": [ 465 "C++17" 466 ] 467 }, 468 "pw_i2c_mcuxpresso": { 469 "tagline": "NXP MCUXpresso SDK implementation for pw_i2c", 470 "status": "stable", 471 "languages": [ 472 "C++17" 473 ] 474 }, 475 "pw_i2c_rp2040": { 476 "tagline": "Raspberry Pi Pico SDK implementation for pw_i2c", 477 "status": "stable", 478 "languages": [ 479 "C++17" 480 ] 481 }, 482 "pw_ide": { 483 "tagline": "Code editor and IDE support for Pigweed projects", 484 "status": "stable", 485 "languages": [ 486 "C++", 487 "CLI", 488 "Python", 489 "VS Code" 490 ] 491 }, 492 "pw_interrupt": { 493 "status": "unstable" 494 }, 495 "pw_interrupt_cortex_m": { 496 "status": "unstable" 497 }, 498 "pw_interrupt_freertos": { 499 "status": "experimental", 500 "languages": [] 501 }, 502 "pw_interrupt_xtensa": { 503 "status": "unstable" 504 }, 505 "pw_interrupt_zephyr": { 506 "status": "unstable" 507 }, 508 "pw_intrusive_ptr": { 509 "status": "unstable" 510 }, 511 "pw_json": { 512 "tagline": "Simple, efficient C++ JSON serialization", 513 "status": "stable", 514 "languages": [ 515 "C++17" 516 ] 517 }, 518 "pw_kernel": { 519 "tagline": "Kernel experiments", 520 "status": "experimental", 521 "languages": [ 522 "Rust" 523 ] 524 }, 525 "pw_kvs": { 526 "tagline": "Lightweight, persistent key-value store", 527 "status": "stable", 528 "size": "~12 kB", 529 "languages": [ 530 "C++17" 531 ] 532 }, 533 "pw_libc": { 534 "status": "unstable" 535 }, 536 "pw_libcxx": { 537 "status": "unstable" 538 }, 539 "pw_log": { 540 "tagline": "Robust and portable logging for embedded projects", 541 "status": "stable", 542 "languages": [ 543 "C++", 544 "Java", 545 "Python", 546 "Rust" 547 ] 548 }, 549 "pw_log_android": { 550 "tagline": "Android logging backend", 551 "status": "stable", 552 "languages": [ 553 "C++" 554 ] 555 }, 556 "pw_log_basic": { 557 "status": "stable" 558 }, 559 "pw_log_fuchsia": { 560 "tagline": "Fuchsia logging backend", 561 "status": "experimental", 562 "languages": [ 563 "C", 564 "C++" 565 ] 566 }, 567 "pw_log_null": { 568 "status": "stable" 569 }, 570 "pw_log_rpc": { 571 "status": "stable" 572 }, 573 "pw_log_string": { 574 "status": "stable" 575 }, 576 "pw_log_tokenized": { 577 "status": "stable" 578 }, 579 "pw_log_zephyr": { 580 "status": "stable" 581 }, 582 "pw_malloc": { 583 "tagline": "Replacement interface for standard libc dynamic memory operations", 584 "status": "stable", 585 "languages": [ 586 "C", 587 "C++" 588 ] 589 }, 590 "pw_malloc_freelist": { 591 "status": "stable" 592 }, 593 "pw_malloc_freertos": { 594 "status": "stable" 595 }, 596 "pw_metric": { 597 "status": "stable" 598 }, 599 "pw_minimal_cpp_stdlib": { 600 "status": "stable" 601 }, 602 "pw_module": { 603 "status": "stable" 604 }, 605 "pw_multibuf": { 606 "tagline": "A buffer API optimized for zero-copy messaging", 607 "status": "unstable", 608 "languages": [ 609 "C++17" 610 ] 611 }, 612 "pw_multisink": { 613 "status": "stable" 614 }, 615 "pw_numeric": { 616 "tagline": "Efficient mathematical utilities for embedded", 617 "status": "stable", 618 "languages": [ 619 "C++" 620 ] 621 }, 622 "pw_package": { 623 "status": "stable" 624 }, 625 "pw_perf_test": { 626 "tagline": "Micro-benchmarks that are easy to write and run", 627 "status": "unstable", 628 "languages": [ 629 "C++17" 630 ] 631 }, 632 "pw_persistent_ram": { 633 "status": "stable" 634 }, 635 "pw_polyfill": { 636 "status": "stable" 637 }, 638 "pw_preprocessor": { 639 "tagline": "Helpful preprocessor macros", 640 "status": "stable", 641 "languages": [ 642 "C", 643 "C++" 644 ] 645 }, 646 "pw_presubmit": { 647 "tagline": "Python tools for running presubmit checks and linters", 648 "status": "stable", 649 "languages": [ 650 "Python" 651 ] 652 }, 653 "pw_protobuf": { 654 "tagline": "Expressive interface for encoding and decoding protocol buffers", 655 "status": "stable", 656 "languages": [ 657 "C++" 658 ] 659 }, 660 "pw_protobuf_compiler": { 661 "status": "stable" 662 }, 663 "pw_random": { 664 "status": "stable" 665 }, 666 "pw_random_fuchsia": { 667 "tagline": "Fuchsia implementation of pw_random", 668 "status": "experimental", 669 "languages": [] 670 }, 671 "pw_result": { 672 "tagline": "Error propagation primitives: value-or-error", 673 "status": "stable", 674 "languages": [ 675 "C++17" 676 ] 677 }, 678 "pw_ring_buffer": { 679 "status": "stable" 680 }, 681 "pw_router": { 682 "tagline": "Transport-agnostic packet routing", 683 "status": "experimental", 684 "languages": [ 685 "C++" 686 ] 687 }, 688 "pw_rpc": { 689 "tagline": "Efficient, low-code-size RPC system for embedded devices", 690 "status": "stable", 691 "languages": [ 692 "C++", 693 "Java", 694 "JavaScript", 695 "Python", 696 "TypeScript" 697 ] 698 }, 699 "pw_rpc_transport": { 700 "status": "unstable" 701 }, 702 "pw_rust": { 703 "status": "experimental" 704 }, 705 "pw_sensor": { 706 "tagline": "A modular way to see the world", 707 "status": "experimental", 708 "languages": [ 709 "Python", 710 "C++17" 711 ] 712 }, 713 "pw_snapshot": { 714 "status": "stable" 715 }, 716 "pw_software_update": { 717 "tagline": "Secure software delivery", 718 "status": "experimental", 719 "languages": [ 720 "Python", 721 "C++17" 722 ] 723 }, 724 "pw_span": { 725 "tagline": "std::span for C++17", 726 "status": "stable", 727 "languages": [ 728 "C++17", 729 "C++20" 730 ] 731 }, 732 "pw_spi": { 733 "status": "stable" 734 }, 735 "pw_spi_linux": { 736 "tagline": "SPI interface for Linux userspace", 737 "status": "unstable", 738 "languages": [ 739 "C++17", 740 "C++20" 741 ] 742 }, 743 "pw_spi_mcuxpresso": { 744 "status": "stable" 745 }, 746 "pw_spi_rp2040": { 747 "tagline": "Raspberry Pi RP2040 backend for pw_spi", 748 "status": "unstable", 749 "languages": [ 750 "C++" 751 ] 752 }, 753 "pw_status": { 754 "tagline": "Exception-free error propagation for embedded", 755 "status": "stable", 756 "languages": [ 757 "C++17", 758 "C", 759 "Python", 760 "Java", 761 "TypeScript", 762 "Rust" 763 ] 764 }, 765 "pw_stm32cube_build": { 766 "status": "stable" 767 }, 768 "pw_stream": { 769 "tagline": "A foundational interface for streaming data", 770 "status": "stable", 771 "languages": [ 772 "C++", 773 "Rust" 774 ] 775 }, 776 "pw_stream_shmem_mcuxpresso": { 777 "status": "stable" 778 }, 779 "pw_stream_uart_linux": { 780 "status": "stable" 781 }, 782 "pw_stream_uart_mcuxpresso": { 783 "status": "stable" 784 }, 785 "pw_string": { 786 "tagline": "Efficient, easy, and safe string manipulation", 787 "status": "stable", 788 "size": "500 to 1500 bytes", 789 "languages": [ 790 "C++17" 791 ] 792 }, 793 "pw_symbolizer": { 794 "status": "stable" 795 }, 796 "pw_sync": { 797 "status": "stable" 798 }, 799 "pw_sync_baremetal": { 800 "status": "stable" 801 }, 802 "pw_sync_embos": { 803 "status": "stable" 804 }, 805 "pw_sync_freertos": { 806 "status": "stable" 807 }, 808 "pw_sync_stl": { 809 "status": "stable" 810 }, 811 "pw_sync_threadx": { 812 "status": "stable" 813 }, 814 "pw_sync_zephyr": { 815 "status": "stable" 816 }, 817 "pw_sys_io": { 818 "status": "stable" 819 }, 820 "pw_sys_io_ambiq_sdk": { 821 "status": "stable" 822 }, 823 "pw_sys_io_arduino": { 824 "status": "stable" 825 }, 826 "pw_sys_io_baremetal_lm3s6965evb": { 827 "status": "stable" 828 }, 829 "pw_sys_io_baremetal_stm32f429": { 830 "status": "stable" 831 }, 832 "pw_sys_io_emcraft_sf2": { 833 "status": "stable" 834 }, 835 "pw_sys_io_mcuxpresso": { 836 "status": "stable" 837 }, 838 "pw_sys_io_rp2040": { 839 "status": "stable" 840 }, 841 "pw_sys_io_stdio": { 842 "status": "stable" 843 }, 844 "pw_sys_io_stm32cube": { 845 "status": "stable" 846 }, 847 "pw_sys_io_zephyr": { 848 "status": "stable" 849 }, 850 "pw_system": { 851 "status": "unstable" 852 }, 853 "pw_target_runner": { 854 "tagline": "gRPC server for running executables in parallel", 855 "status": "stable", 856 "languages": [ 857 "Go" 858 ] 859 }, 860 "pw_thread": { 861 "status": "stable" 862 }, 863 "pw_thread_embos": { 864 "status": "stable" 865 }, 866 "pw_thread_freertos": { 867 "status": "stable" 868 }, 869 "pw_thread_stl": { 870 "status": "stable" 871 }, 872 "pw_thread_threadx": { 873 "status": "stable" 874 }, 875 "pw_thread_zephyr": { 876 "status": "stable" 877 }, 878 "pw_tls_client": { 879 "status": "stable" 880 }, 881 "pw_tls_client_boringssl": { 882 "status": "stable" 883 }, 884 "pw_tls_client_mbedtls": { 885 "status": "stable" 886 }, 887 "pw_tokenizer": { 888 "tagline": "Compress strings to shrink logs by +75%", 889 "status": "stable", 890 "size": "50% reduction in log size", 891 "languages": [ 892 "C++", 893 "C11", 894 "Python", 895 "Rust", 896 "TypeScript", 897 "Java" 898 ] 899 }, 900 "pw_toolchain": { 901 "tagline": "Embedded toolchains for GN-based Pigweed projects", 902 "status": "stable", 903 "languages": [ 904 "GN" 905 ] 906 }, 907 "pw_trace": { 908 "status": "stable" 909 }, 910 "pw_trace_tokenized": { 911 "status": "stable" 912 }, 913 "pw_transfer": { 914 "status": "stable" 915 }, 916 "pw_uart": { 917 "tagline": "Core interfaces for UART communication", 918 "status": "unstable", 919 "languages": [ 920 "C++" 921 ] 922 }, 923 "pw_uart_mcuxpresso": { 924 "tagline": "NXP MCUXpresso SDK implementation for pw_uart", 925 "status": "unstable", 926 "languages": [ 927 "C++" 928 ] 929 }, 930 "pw_unit_test": { 931 "tagline": "GoogleTest for embedded", 932 "status": "stable" 933 }, 934 "pw_unit_test_zephyr": { 935 "status": "stable" 936 }, 937 "pw_varint": { 938 "tagline": "Functions for encoding and decoding variable length integers", 939 "status": "stable", 940 "languages": [ 941 "C", 942 "C++", 943 "Rust" 944 ] 945 }, 946 "pw_watch": { 947 "tagline": "Embedded development file system watcher", 948 "status": "stable" 949 }, 950 "pw_web": { 951 "status": "stable" 952 }, 953 "pw_work_queue": { 954 "status": "stable" 955 } 956} 957