• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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