conqueue 0.1.0

Yet another multi-producer, single-consumer queue (MPSC)
Documentation

Conqueue

Crates.io Crates.io

Conqueue is another multi-producer, single-consumer queue (MPSC) for the Rust programming language.

Getting Started

To get started, add the following to your Cargo.toml file:

[dependencies]
conqueue = "0.1.0"

Then, at the root of your crate:

extern crate conqueue

Finally, create a sender/receiver pair. The sender may be cloned to allow concurrent producers, and it is both Send and Sync.

let (tx1, mut rx) = conqueue::Queue::unbounded();
let tx2 = tx1.clone();

tx1.push(1);
tx2.push(2);

while let Some(value) = rx.pop() {
  println!("popped: {}", value);
}

Release Notes

0.1.0 - 2019-07-30

  • Initial release. Likely not production ready.

Developer Notes

To run the tests, execute the following:

cargo test

To run a benchmark for the queue, execute the following:

cargo test --release -- --ignored --nocapture

Inspiration

This code is largely based on majek's implementation of Michael-Scott queue. You can find the code here and a blog post here.

License

Conqueue is provided under the MIT license.