Skip to main content
Pigweed's logo Pigweed
code_xml
  1. Home
  2. Reference
  3. C/C++
Loading...
Searching...
No Matches
Modules
The Pigweed C/C++ API is grouped by Pigweed modules. If you're looking for something specific, but can't remember what Pigweed module it belongs to, try searching for it by name.
[detail level 12345]
 ▼Async & concurrencyCooperative multitasking, futures, and asynchronous primitives
 ►pw_asyncPortable APIs for asynchronous code
 ►pw_async2Cooperative async tasks for embedded
 pw_work_queue
 ▼Build systemsBazel, GN, and CMake integrations and rules
 pw_buildIntegrations for Bazel, GN, and CMake
 ▼CommsRemote procedure calls (RPC), channels, and communication streams
 ►BluetoothDual-mode Bluetooth Host stack, HCI controllers, and profiles
 ►pw_channelAsync, zero-copy API for sending and receiving bytes or datagrams
 pw_cobsConsistent Overhead Byte Stuffing (COBS) codec and zero-copy frame streamer
 pw_hdlcSimple, robust, and efficient serial communication
 ►pw_rpcEfficient, low-code-size RPC system for embedded devices
 ►pw_rpc2Next gen, zero-copy async RPC with end-to-end backpressure
 ►pw_streamA foundational interface for streaming data
 pw_transfer
 pw_transportAsynchronous datagram-oriented transport interface
 ▼Cryptography & securityHashing, cryptographic primitives, and secure storage
 pw_crypto
 pw_random
 ▼Data structures & utilitiesEmbedded-safe collections, spans, strings, status, and error handling
 ►pw_containersGeneric collections of objects for embedded devices
 pw_enumRich enum support
 pw_functionEmbedded-friendly std::function
 pw_numericEfficient mathematical utilities for embedded
 pw_resultError propagation primitives: value-or-error
 ►pw_spanStd::span for C++17
 pw_statusException-free error propagation for embedded
 ►pw_stringEfficient, easy, and safe string manipulation
 ▼Encoding & serializationProtocol Buffers, JSON, Varint, Base64, and wire format serialization
 pw_base64Base64 encoding, decoding, and validating
 ►pw_bytesUtilities for manipulating binary data
 ►pw_jsonSimple, efficient C++ JSON serialization
 ►pw_protobufExpressive interface for encoding and decoding protocol buffers
 pw_uuid128-bit universally unique identifier (UUID)
 pw_varintFunctions for encoding and decoding variable length integers
 ▼HALsHardware abstraction layer interfaces for timers, I2C, SPI, UART, and GPIO
 pw_analogAnalog-to-digital converter libraries and utilities
 ►pw_clock_treeClock tree management for embedded devices
 ►pw_digital_ioDigital I/O interface
 ►pw_displayGraphic display support and framebuffer management
 ►pw_i2cCross-platform I2C API with interactive debugging
 pw_spi
 pw_sys_io
 pw_uartCore interfaces for UART communication
 ▼Hardware supportBoard support, hardware drivers, and SDK integrations for target platforms
 ►NXPDrivers, build utilities, & HAL implementations for NXP MCUXpresso SDK
 ▼Memory & storageMemory allocators, buffers, persistent flash storage, and key-value stores
 pw_alignmentNatural object alignment, guaranteed
 ►pw_allocatorFlexible, safe, and measurable memory allocation
 pw_bufContiguous buffer views with optional memory ownership
 pw_kvsLightweight, persistent key-value store
 pw_mallocReplacement interface for standard libc dynamic memory operations
 ►pw_multibufA buffer API optimized for zero-copy messaging
 ▼OS abstraction layersSynchronization, threading, and portable RTOS abstractions
 ►BackendsOperating system, RTOS, and bare-metal backends for Pigweed's OS abstraction layers
 pw_chronoPortable std::chrono for constrained embedded devices
 pw_interruptInterrupt handling utilities for embedded systems
 pw_syncPortable abstraction for synchronization primitives
 pw_system
 pw_threadThread creation and execution
 ▼ObservabilityStructured logging, tokenization, metrics, crash handling, and tracing
 pw_assertFlexible crash triggering and handling
 pw_hex_dumpHandy hexdump utilities
 ►pw_logRobust and portable logging for embedded projects
 pw_metric
 pw_persistent_ramReliable memory across reboots for crash reporting
 ►pw_tokenizerCompress strings to shrink logs by +75%
 ►pw_trace
 Pw_multibuf_v1_adapter
 Pw_trace_tokenzed
 ▼TestingUnit testing frameworks, mocking, compilation tests, and fuzzing
 pw_perf_testMicro-benchmarks that are easy to write and run
 ►pw_unit_testGoogleTest for embedded
 ▼ToolchainsHermetic LLVM/Clang toolchains, C/C++ libraries, and build utilities
 pw_bloatUtilities for generating binary size reports
 pw_elfELF file support
 pw_polyfill
 ►pw_preprocessorHelpful preprocessor macros
 pw_toolchainEmbedded toolchains for GN-based Pigweed projects
 ▼third-partyAPI integrations with third-party software e.g. FreeRTOS
 FreeRTOSFreeRTOS application functions