This crate provides multi-producer multi-consumer channels for message passing.
It is an alternative to [std::sync::mpsc
] with more features and better performance.
Some highlights:
Sender
]s and [Receiver
]s can be cloned and shared among threads.bounded
] and [unbounded
].after
], [never
], and [tick
].select!
] macro can block on multiple channel operations.Select
] can select over a dynamically built list of channel operations.Add this to your Cargo.toml
:
toml
[dependencies]
crossbeam-channel = "0.4"
Next, add this to your crate:
```rust
extern crate crossbeam_channel; ```
The minimum supported Rust version is 1.28. Any change to this is considered a breaking change.
Licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
This product includes copies and modifications of software developed by third parties:
examples/matching.rs includes matching.go by Stefan Nilsson, licensed under Creative Commons Attribution 3.0 Unported License.
src/flavors/array.rs is based on Bounded MPMC queue by Dmitry Vyukov, licensed under the Simplified BSD License and the Apache License, Version 2.0.
tests/mpsc.rs includes modifications of code from The Rust Programming Language, licensed under the MIT License and the Apache License, Version 2.0.
tests/golang.rs is based on code from The Go Programming Language, licensed under the 3-Clause BSD License.
See the source code files for more details.
Copies of third party licenses can be found in LICENSE-THIRD-PARTY.