I use UDP multicast to have multiple consumer processes on a single host receive copies of the data from a producer on the same host – ‘tens’ of MB per second / ‘thousands’ of packets per second. This setup has some useful properties that I want:
- Broadcast messaging model
- Bounded queues
- Slow consumer looses data; does not cause problems for others
- Process isolation for each component
However, trying to make it more efficient would be good sport!
Is there are Rust crate that already supports an IPC model like this without sending everything via the kernel and copying all the data for each consumer process?