FreeRTOS_application_functions | |
Pw_bytes_endian | |
Pw_rpc_channel_functions | |
pw_alignment | Natural object alignment, guaranteed. Main docs: https://pigweed.dev/pw_alignment |
►pw_allocator | Flexible, safe, and measurable memory allocation |
►Blocks | An allocatable region of memory |
Block implementations | The following combine block mix-ins and provide both the methods they require as well as a concrete representation of the data those methods need |
Block mix-ins | Blocks are defined using several stateless “mix-in” interface types |
Buckets | Data structures that track free blocks |
►Concrete allocators | Concrete allocator implementations that provide memory dynamically |
Block allocators | |
Configuration | Options for controlling block poisoning intervals, validation checks, and deprecation warnings |
Core interfaces | Generic allocator interfaces that can be injected into routines that need dynamic memory |
Forwarding allocators | Allocator implementations that don’t allocate memory directly and instead rely on other allocators while providing additional behaviors |
►Implementation interfaces | Interfaces for allocator implementers |
Size reports | Generate code size reports for allocator implementations |
►Testing and debugging | Test utilities for allocator implementers |
FuzzTest support | |
Utilities | Helpers for metrics, fragmentation, and buffer management |
pw_analog | Analog-to-digital converter libraries and utilities. Main docs: https://pigweed.dev/pw_analog |
pw_async | Portable APIs for asynchronous code. Main docs: https://pigweed.dev/pw_async |
►pw_async2 | Cooperative async tasks for embedded |
Built-in pendables | Async operations that can be polled for completion and suspended. Learn more: The pendable function interface |
Combining tasks | Helpers for interacting with multiple pendables |
Core | Core primitives such as tasks, dispatchers, polls, contexts, and wakers |
Coroutines | C++20 coroutine support. Learn more: Coroutines |
Dispatcher backends | Dispatcher implementation interfaces |
Dynamic allocation | Heap allocate space for tasks or functions with pw::Allocator |
Pendable adapters | Pendable wrappers and helpers |
pw_async_basic | Main docs: https://pigweed.dev/pw_async_basic |
pw_base64 | Base64 encoding, decoding, and validating. Main docs: https://pigweed.dev/pw_base64 |
pw_bloat | Utilities for generating binary size reports. Main docs: https://pigweed.dev/pw_bloat |
pw_bluetooth | Host-layer Bluetooth Low Energy APIs and utilities. Main docs: https://pigweed.dev/pw_bluetooth |
pw_bluetooth_proxy | Lightweight proxy for augmenting Bluetooth functionality. Main docs: https://pigweed.dev/pw_bluetooth_proxy |
pw_bluetooth_sapphire | Battle-tested Bluetooth with rock-solid reliability. Main docs: https://pigweed.dev/pw_bluetooth_sapphire |
pw_build | Integrations for Bazel, GN, and CMake. Main docs: https://pigweed.dev/pw_build |
pw_bytes | Utilities for manipulating binary data. Main docs: https://pigweed.dev/pw_bytes |
►pw_channel | Async, zero-copy API for sending and receiving bytes or datagrams. Main docs: https://pigweed.dev/pw_channel |
Forwarding | |
Loopback | |
Packets | |
RP2 stdio | |
Stream channel | |
epoll | |
pw_chre | Android Context Hub Runtime Environment backend. Main docs: https://pigweed.dev/pw_chre |
pw_chrono | Portable std::chrono for constrained embedded devices. Main docs: https://pigweed.dev/pw_chrono |
pw_clock_tree | Clock tree management for embedded devices. Main docs: https://pigweed.dev/pw_clock_tree |
pw_clock_tree_mcuxpresso | NXP MCUXpresso SDK implementation for pw_clock_tree. Main docs: https://pigweed.dev/pw_clock_tree_mcuxpresso |
►pw_containers | Generic collections of objects for embedded devices: https://pigweed.dev/pw_containers |
Lists | |
Maps | |
►Queues | |
C API | |
C++ API | |
Sets | |
Utilities | |
Vectors | |
pw_crypto | Main docs: https://pigweed.dev/pw_crypto |
pw_digital_io | Digital I/O interface. Main docs: https://pigweed.dev/pw_digital_io |
pw_digital_io_mcuxpresso | Digital I/O for NXP MCUXpresso. Main docs: https://pigweed.dev/pw_digital_io_mcuxpresso |
►pw_display | Graphic display support and framebuffer management. Main docs: https://pigweed.dev/pw_display |
Color | |
pw_elf | ELF file support. Main docs: https://pigweed.dev/pw_elf |
pw_function | Embedded-friendly std::function : https://pigweed.dev/pw_function |
pw_hdlc | Simple, robust, and efficient serial communication. Main docs: https://pigweed.dev/pw_hdlc |
pw_hex_dump | Handy hexdump utilities. Main docs: https://pigweed.dev/pw_hex_dump |
pw_i2c | Cross-platform I2C API with interactive debugging. Main docs: https://pigweed.dev/pw_i2c |
pw_i2c_linux | Linux userspace implementation for pw_i2c. Main docs: https://pigweed.dev/pw_i2c_linux |
pw_interrupt | Main docs: https://pigweed.dev/pw_interrupt |
►pw_json | Simple, efficient C++ JSON serialization. Main docs: https://pigweed.dev/pw_json |
Pw_json_builder_api | |
pw_kvs | Lightweight, persistent key-value store. Main docs: https://pigweed.dev/pw_kvs |
pw_log_tokenized | Main docs: https://pigweed.dev/pw_log_tokenized |
pw_malloc | Replacement interface for standard libc dynamic memory operations. Main docs: https://pigweed.dev/pw_malloc |
►pw_multibuf | A buffer API optimized for zero-copy messaging |
Experimental v2 API | Experimental API that separates out the concern of memory allocation |
►Legacy v1 API | Interfaces that will eventually be deprecated |
Allocator implementation API | |
Test-only features | |
pw_numeric | Efficient mathematical utilities for embedded. Main docs: https://pigweed.dev/pw_numeric |
pw_perf_test | Micro-benchmarks that are easy to write and run. Main docs: https://pigweed.dev/pw_perf_test |
pw_persistent_ram | Main docs: https://pigweed.dev/pw_persistent_ram |
pw_polyfill | Main docs: https://pigweed.dev/pw_polyfill |
►pw_preprocessor | Helpful preprocessor macros. Main docs: https://pigweed.dev/pw_preprocessor |
►Internal | |
Compiler | |
pw_random | Main docs: https://pigweed.dev/pw_random |
►pw_span | Std::span for C++17. Main docs: https://pigweed.dev/pw_span |
Cast | |
►pw_stream | A foundational interface for streaming data |
Implementations | Concrete implementations of stream interfaces for general use |
►Interfaces | Generic stream interfaces that support a combination of reading, writing, and seeking |
ReaderWriters | Streams that support both reading and writing |
Readers | Streams that support reading but not writing |
Writers | Streams that support writing but not reading |
pw_stream_uart_linux | Main docs: https://pigweed.dev/pw_stream_uart_linux |
►pw_string | Efficient, easy, and safe string manipulation |
InlineString and InlineBasicString | Safer alternatives to std::string and std::basic_string |
StringBuilder | The flexibility of std::ostringstream but with a small footprint |
UTF-8 helpers | Basic helpers for reading and writing UTF-8-encoded strings |
Utilities | Safer alternatives to C++ standard library string functions |
pw_sync | Main docs: Home |
pw_sys_io | Main docs: https://pigweed.dev/pw_sys_io |
pw_system | Main docs: https://pigweed.dev/pw_system |
pw_thread | Main docs: https://pigweed.dev/pw_thread |
►pw_tokenizer | Compress strings to shrink logs by +75% |
Configuration | Tokenization customization options |
Detokenization | Expand a token to the string it represents and decode its arguments |
Token databases | Store a mapping of tokens to the strings they represent |
Tokenization | Convert string literals to tokens |
pw_toolchain | Embedded toolchains for GN-based Pigweed projects. Main docs: https://pigweed.dev/pw_toolchain |
pw_trace_tokenized | Main docs: https://pigweed.dev/pw_trace_tokenized |
pw_transfer | Main docs: https://pigweed.dev/pw_transfer |
pw_uart | Core interfaces for UART communication. Main docs: https://pigweed.dev/pw_uart |
pw_uuid | 128-bit universally unique identifier (UUID). Main docs: https://pigweed.dev/pw_uuid |
pw_varint | Functions for encoding and decoding variable length integers. Main docs: https://pigweed.dev/pw_varint |
pw_work_queue | Main docs: https://pigweed.dev/pw_work_queue |