peerbus
One messaging API, two transports.
Shared memory when both ends are on the same host, no copy and no serialization. iroh's QUIC when they're not, with NAT traversal and TLS 1.3. The choice is made once, at subscribe time, and is invisible after that.
Five modes cover request/response, a query that can draw many answers, many puts
acknowledged once, a fully bidirectional pipe, and plain pub/sub fan-out — one Node
API for all five.