What’s new in Pigweed# Index May 2026 Async and concurrency Notification channels and void coroutines in pw_async2 Thread safety fixes in pw_async2 Bluetooth Security fixes in pw_bluetooth_sapphire LE Audio Isochronous Channels support in pw_bluetooth_sapphire Passthrough support for large L2CAP PDUs in pw_bluetooth_proxy C++ data structures and utilities New pw_enum module Lifetime bound checks for pw::FunctionRef Cryptography and security ChaCha20 cipher support in pw_crypto Developer tools Log file viewing in pw_console Downstream module creation with pw_module Performance and usability improvements to pw_ide Kernel Vectored I/O for channel transactions in pw_kernel Updated join and terminate syscalls Logging, debugging, and crash handling Compile-time format string concatenation in Rust pw_log RPC Concurrency and lock reduction in pw_rpc Tokenization Improved collision handling and correctness in pw_tokenizer April 2026 Async and concurrency Void future support in pw::async2::Select Bluetooth Dynamic credit sharing mode in pw_bluetooth_proxy Build systems New Python API for Bazel introspection and queries C++ data structures and utilities pw_function config override header Non-owning callbacks via pw::FunctionRef Dynamic containers reset support std::variant support in pw::Hash New pw_numeric arithmetic and rounding utilities Developer tools pw_ide Bazel code intelligence and VS Code UI overhaul pw_presubmit v2 Embedded memory regions support in pw_snapshot diagnostics HALs pw_i2c mcuxpresso hardware timeouts support for deadlines Kernel Userspace process control Shareable .text sections Userspace time support Out-of-band channel signaling System generation RPC pw_transfer server-side lifecycle callbacks Third-party hardware and software pw_allocator support for Zephyr Timing and clocks pw_clock_tree improvements March 2026 Async and concurrency Handle futures of varying types with BoxedFuture Simplified polling with PW_AWAIT Coroutine and task rework Bluetooth Allocator support for buffers and packets in pw_bluetooth_sapphire C++ data structures and utilities Dynamically allocated maps with pw::DynamicMap New FIFO queue with performant push and pop operations Developer tools Improved pw_ide reliability Kernel Async IPC Process termination and ownership Reduce footprint of kernel-only applications RPC Support multiple clients on a transfer thread in pw_transfer Toolchains and compilers Access toolchain tools through Bazelisk