Put a ring on it: a lock-free MPMC ring buffer

Fixed-size ring buffers with full lock freedom

h4x0r
Your MPSC/SPMC/MPMC queue is not a queue

Lockless queues let multiple cores communicate with each other without mutexes, typically to move work around for parallel processing. They come in four variants: {single,multi}-producer {single,multi}-consumer. A producer gives data to a consumer, each of which can be limited to a single thread (i.e. a single-{producer,consumer}) or shared across multiple threads. But only the single-producer single-consumer (SPSC) queue is actually a queue!

Alex Saveau

Flume, https://github.com/zesterer/flume.

A blazingly fast multi-producer, multi-consumer channel. It can be sync or async, which is pretty neat!

No unsafe code too.

#RustLang #mpmc #channel

GitHub - zesterer/flume: A safe and fast multi-producer, multi-consumer channel.

A safe and fast multi-producer, multi-consumer channel. - zesterer/flume

GitHub