nbchan

Crates.io: nbchan Build Status License: MIT

Highly optimized non-blocking communication channels implemented in Rust.

Documentation

Informal Benchmarks

The version of nbchan is v0.1.0:

```sh $ cat /etc/lsb-release | tail -1 DISTRIB_DESCRIPTION="Ubuntu 17.04"

$ cat /proc/cpuinfo | grep 'model name' model name : Intel(R) Core(TM) i7-6600U CPU @ 2.60GHz model name : Intel(R) Core(TM) i7-6600U CPU @ 2.60GHz model name : Intel(R) Core(TM) i7-6600U CPU @ 2.60GHz model name : Intel(R) Core(TM) i7-6600U CPU @ 2.60GHz

$ rustup run nightly rustc -V rustc 1.18.0-nightly (036983201 2017-04-26)

$ rustup run nightly cargo bench running 8 tests test createnbchanoneshot ... bench: 23 ns/iter (+/- 1) test createstdmpsc ... bench: 64 ns/iter (+/- 6) test failuresendnbchanoneshot ... bench: 40 ns/iter (+/- 1) test failuresendstdmpsc ... bench: 85 ns/iter (+/- 6) test multithreadsendrecvnbchanoneshot ... bench: 71 ns/iter (+/- 19) test multithreadsendrecvstdmpsc ... bench: 108 ns/iter (+/- 53) test sendrecvnbchanoneshot ... bench: 35 ns/iter (+/- 4) test sendrecvstdmpsc ... bench: 82 ns/iter (+/- 3)

test result: ok. 0 passed; 0 failed; 0 ignored; 8 measured ```

sh $ cargo run --example channel_size nbchan::oneshot::Sender<()>: 8 bytes nbchan::oneshot::Receiver<()>: 8 bytes std::sync::mpsc::Sender<()>: 16 bytes std::sync::mpsc::Receiver<()>: 16 bytes