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_async": { 40 "tagline": "Portable APIs for asynchronous code", 41 "status": "deprecated", 42 "languages": [ 43 "C++" 44 ] 45 }, 46 "pw_async2": { 47 "tagline": "Cooperative async tasks for embedded", 48 "status": "experimental", 49 "languages": [ 50 "C++17" 51 ] 52 }, 53 "pw_base64": { 54 "tagline": "Base64 encoding, decoding, and validating", 55 "status": "stable", 56 "languages": [ 57 "C", 58 "C++" 59 ] 60 }, 61 "pw_bloat": { 62 "tagline": "Utilities for generating binary size reports", 63 "status": "stable", 64 "languages": [ 65 "C++", 66 "GN" 67 ] 68 }, 69 "pw_blob_store": { 70 "tagline": "Flash-backed persistent storage for data blobs", 71 "status": "stable", 72 "languages": [ 73 "C++" 74 ] 75 }, 76 "pw_bluetooth": { 77 "tagline": "Host-layer Bluetooth Low Energy APIs and utilities", 78 "status": "unstable", 79 "languages": [ 80 "C++" 81 ] 82 }, 83 "pw_bluetooth_hci": { 84 "tagline": "Bluetooth Host Controller Interface utilities", 85 "status": "stable", 86 "languages": [ 87 "C++" 88 ] 89 }, 90 "pw_bluetooth_profiles": { 91 "tagline": "Bluetooth profiles built on top of pw_bluetooth", 92 "status": "unstable", 93 "languages": [ 94 "C++" 95 ] 96 }, 97 "pw_bluetooth_proxy": { 98 "tagline": "Lightweight proxy for augmenting Bluetooth functionality", 99 "status": "unstable", 100 "languages": [ 101 "C++17" 102 ] 103 }, 104 "pw_bluetooth_sapphire": { 105 "tagline": "Battle-tested Bluetooth with rock-solid reliability", 106 "status": "unstable", 107 "size": "1.5 to 2 mB", 108 "languages": [ 109 "C++17" 110 ] 111 }, 112 "pw_boot": { 113 "tagline": "Simplified booting for C++ targets", 114 "status": "stable", 115 "languages": [ 116 "C++17" 117 ] 118 }, 119 "pw_build": { 120 "tagline": "Integrations for Bazel, GN, and CMake", 121 "status": "stable", 122 "languages": [ 123 "Bazel", 124 "CMake", 125 "GN" 126 ] 127 }, 128 "pw_build_android": { 129 "tagline": "Utilities for using Pigweed in Android platform", 130 "status": "unstable", 131 "languages": [ 132 "C++20" 133 ] 134 }, 135 "pw_build_info": { 136 "tagline": "Generate, embed, and parse build-related information", 137 "status": "stable", 138 "languages": [ 139 "Bazel", 140 "CMake", 141 "GN" 142 ] 143 }, 144 "pw_build_mcuxpresso": { 145 "tagline": "Utilities for building NXP MCUXpresso SDK targets", 146 "status": "stable", 147 "languages": [ 148 "Bazel", 149 "GN" 150 ] 151 }, 152 "pw_bytes": { 153 "tagline": "Utilities for manipulating binary data", 154 "status": "stable", 155 "languages": [ 156 "C++" 157 ] 158 }, 159 "pw_channel": { 160 "tagline": "Async, zero-copy API for sending and receiving bytes or datagrams", 161 "status": "experimental", 162 "languages": [ 163 "C++" 164 ] 165 }, 166 "pw_checksum": { 167 "tagline": "Checksum calculation API", 168 "status": "stable", 169 "languages": [ 170 "C", 171 "C++" 172 ] 173 }, 174 "pw_chre": { 175 "tagline": "Android Context Hub Runtime Environment backend", 176 "status": "experimental", 177 "languages": [ 178 "C++" 179 ] 180 }, 181 "pw_cli": { 182 "tagline": "Enhance and accelerate custom command-line tooling", 183 "status": "stable", 184 "languages": [ 185 "Python" 186 ] 187 }, 188 "pw_clock_tree": { 189 "tagline": "Clock tree management for embedded devices", 190 "status": "unstable", 191 "languages": [ 192 "C++17" 193 ] 194 }, 195 "pw_clock_tree_mcuxpresso": { 196 "tagline": "NXP MCUXpresso SDK implementation for pw_clock_tree", 197 "status": "unstable", 198 "languages": [ 199 "C++17" 200 ] 201 }, 202 "pw_console": { 203 "tagline": "Multi-purpose pluggable interactive console for dev & manufacturing", 204 "status": "stable", 205 "size": "N/A (host) but works best with pw_rpc on-device", 206 "languages": [ 207 "Python" 208 ] 209 }, 210 "pw_digital_io_linux": { 211 "tagline": "Digital I/O interface for Linux userspace", 212 "status": "unstable", 213 "languages": [ 214 "C++17" 215 ] 216 }, 217 "pw_dma_mcuxpresso": { 218 "tagline": "DMA helpers for MCUXpresso SDK", 219 "status": "unstable", 220 "languages": [ 221 "C++17" 222 ] 223 }, 224 "pw_docgen": { 225 "tagline": "Documentation generator for Pigweed-based projects", 226 "status": "stable", 227 "languages": [ 228 "GN" 229 ] 230 }, 231 "pw_emu": { 232 "tagline": "Flexible emulators frontend", 233 "status": "experimental", 234 "languages": [ 235 "Python", 236 "CLI" 237 ] 238 }, 239 "pw_env_setup_zephyr": { 240 "tagline": "Zephyr utilities", 241 "status": "experimental" 242 }, 243 "pw_format": { 244 "tagline": "String formatting", 245 "status": "experimental", 246 "languages": [ 247 "Rust" 248 ] 249 }, 250 "pw_function": { 251 "tagline": "Embedded-friendly std::function", 252 "status": "stable", 253 "languages": [ 254 "C++17" 255 ] 256 }, 257 "pw_fuzzer": { 258 "tagline": "Better C++ code through easier fuzzing", 259 "status": "unstable", 260 "languages": [ 261 "C++17", 262 "C++20" 263 ] 264 }, 265 "pw_grpc": { 266 "tagline": "pw_rpc over gRPC", 267 "status": "unstable", 268 "languages": [ 269 "C++17", 270 "C++20" 271 ] 272 }, 273 "pw_hdlc": { 274 "tagline": "Simple, robust, and efficient serial communication", 275 "status": "stable", 276 "size": "1400 to 2600 bytes", 277 "languages": [ 278 "Python", 279 "C++17", 280 "TypeScript" 281 ] 282 }, 283 "pw_i2c": { 284 "tagline": "Cross-platform I2C API with interactive debugging", 285 "status": "stable", 286 "languages": [ 287 "C++17" 288 ] 289 }, 290 "pw_i2c_linux": { 291 "tagline": "Linux userspace implementation for pw_i2c", 292 "status": "stable", 293 "languages": [ 294 "C++17" 295 ] 296 }, 297 "pw_i2c_mcuxpresso": { 298 "tagline": "NXP MCUXpresso SDK implementation for pw_i2c", 299 "status": "stable", 300 "languages": [ 301 "C++17" 302 ] 303 }, 304 "pw_i2c_rp2040": { 305 "tagline": "Raspberry Pi Pico SDK implementation for pw_i2c", 306 "status": "stable", 307 "languages": [ 308 "C++17" 309 ] 310 }, 311 "pw_json": { 312 "tagline": "Simple, efficient C++ JSON serialization", 313 "status": "stable", 314 "languages": [ 315 "C++17" 316 ] 317 }, 318 "pw_kvs": { 319 "tagline": "Lightweight, persistent key-value store", 320 "status": "stable", 321 "size": "~12 kB", 322 "languages": [ 323 "C++17" 324 ] 325 }, 326 "pw_log": { 327 "tagline": "Robust and portable logging for embedded projects", 328 "status": "stable", 329 "languages": [ 330 "C++", 331 "Java", 332 "Python" 333 ] 334 }, 335 "pw_log_android": { 336 "tagline": "Android logging backend", 337 "status": "unstable", 338 "languages": [ 339 "C++" 340 ] 341 }, 342 "pw_multibuf": { 343 "tagline": "A buffer API optimized for zero-copy messaging", 344 "status": "unstable", 345 "languages": [ 346 "C++17" 347 ] 348 }, 349 "pw_perf_test": { 350 "tagline": "Micro-benchmarks that are easy to write and run", 351 "status": "unstable", 352 "languages": [ 353 "C++17" 354 ] 355 }, 356 "pw_presubmit": { 357 "tagline": "Python tools for running presubmit checks and linters", 358 "status": "stable", 359 "languages": [ 360 "Python" 361 ] 362 }, 363 "pw_protobuf": { 364 "tagline": "Expressive interface for encoding and decoding protocol buffers", 365 "status": "stable", 366 "languages": [ 367 "C++" 368 ] 369 }, 370 "pw_router": { 371 "tagline": "Transport-agnostic packet routing", 372 "status": "experimental", 373 "languages": [ 374 "C++" 375 ] 376 }, 377 "pw_result": { 378 "tagline": "Error propagation primitives: value-or-error", 379 "status": "stable", 380 "languages": [ 381 "C++17" 382 ] 383 }, 384 "pw_rpc": { 385 "tagline": "Efficient, low-code-size, higher-level RPC system for embedded devices", 386 "status": "stable", 387 "languages": [ 388 "C++", 389 "Java", 390 "JavaScript", 391 "Python", 392 "TypeScript" 393 ] 394 }, 395 "pw_software_update": { 396 "tagline": "Secure software delivery", 397 "status": "experimental", 398 "languages": [ 399 "Python", 400 "C++17" 401 ] 402 }, 403 "pw_span": { 404 "tagline": "std::span for C++17", 405 "status": "stable", 406 "languages": [ 407 "C++17", 408 "C++20" 409 ] 410 }, 411 "pw_spi_linux": { 412 "tagline": "SPI interface for Linux userspace", 413 "status": "unstable", 414 "languages": [ 415 "C++17", 416 "C++20" 417 ] 418 }, 419 "pw_spi_rp2040": { 420 "tagline": "Raspberry Pi RP2040 backend for pw_spi", 421 "status": "unstable", 422 "languages": [ 423 "C++" 424 ] 425 }, 426 "pw_status": { 427 "tagline": "Exception-free error propagation for embedded", 428 "status": "stable", 429 "languages": [ 430 "C++17", 431 "C", 432 "Python", 433 "Java", 434 "TypeScript", 435 "Rust" 436 ] 437 }, 438 "pw_string": { 439 "tagline": "Efficient, easy, and safe string manipulation", 440 "status": "stable", 441 "size": "500 to 1500 bytes", 442 "languages": [ 443 "C++17" 444 ] 445 }, 446 "pw_target_runner": { 447 "tagline": "gRPC server for running executables in parallel", 448 "status": "stable", 449 "languages": [ 450 "Go" 451 ] 452 }, 453 "pw_tokenizer": { 454 "tagline": "Compress strings to shrink logs by +75%", 455 "status": "stable", 456 "size": "50% reduction in log size", 457 "languages": [ 458 "C++", 459 "C11", 460 "Python", 461 "Rust", 462 "TypeScript", 463 "Java" 464 ] 465 }, 466 "pw_toolchain_bazel": { 467 "tagline": "A modular toolkit for declaring C/C++ toolchains in Bazel", 468 "status": "unstable", 469 "languages": [ 470 "Starlark" 471 ] 472 }, 473 "pw_uart": { 474 "tagline": "Core interfaces for UART communication", 475 "status": "unstable", 476 "languages": [ 477 "C++" 478 ] 479 }, 480 "pw_unit_test": { 481 "tagline": "GoogleTest for embedded", 482 "status": "stable" 483 }, 484 "pw_varint": { 485 "tagline": "Functions for encoding and decoding variable length integers", 486 "status": "stable", 487 "languages": [ 488 "C", 489 "C++", 490 "Rust" 491 ] 492 }, 493 "pw_watch": { 494 "tagline": "Embedded development file system watcher", 495 "status": "stable" 496 } 497} 498