Zephyr uses a version of the Linux io_uring for managing async tasks. This proposes to use pw_async instead with a similar model, with the benefit that you can push the task itself to the queue instead of metadata describing a task. But there is risk in allowing the execution of arbitrary tasks instead of a finite set of defined tasks.
Zephyr relies heavily on linker scripts, and the proposal includes an optional linker section to create an iterable of sensor objects. But linker scripts are not very portable, e.g., probably won’t work on Windows. Could borrow the service registration vector concept from pw_rpc.
Pigweed has great stuff at the application layer, but to use it you have to cobble together the lower layers
The SEED proposes a sockets API (conceptually similar to POSIX sockets) backed up by various network layer options that the socket user doesn’t need to worry about
This could replace the channel API in pw_rpc – would use sockets instead
Backup up the sockets with TCP/IP makes a lot of sense, and systems that have a full TCP/IP stack can use it. But that stack is too big for many embedded systems and provides features that are not relevant to them. In those cases, a custom TCP/IP-like network stack could be used instead.