jianglk.darker
7ee447c011
|
4 months ago | |
---|---|---|
.. | ||
benches | 4 months ago | |
examples | 4 months ago | |
src | 4 months ago | |
tests | 4 months ago | |
.cargo_vcs_info.json | 4 months ago | |
Android.bp | 4 months ago | |
CHANGELOG.md | 4 months ago | |
Cargo.lock | 4 months ago | |
Cargo.toml | 4 months ago | |
Cargo.toml.orig | 4 months ago | |
LICENSE | 4 months ago | |
LICENSE-APACHE | 4 months ago | |
LICENSE-MIT | 4 months ago | |
LICENSE-THIRD-PARTY | 4 months ago | |
METADATA | 4 months ago | |
MODULE_LICENSE_APACHE2 | 4 months ago | |
OWNERS | 4 months ago | |
README.md | 4 months ago |
README.md
Crossbeam Channel
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 andReceiver
s can be cloned and shared among threads.- Two main kinds of channels are
bounded
andunbounded
. - Convenient extra channels like
after
,never
, andtick
. - The
select!
macro can block on multiple channel operations. Select
can select over a dynamically built list of channel operations.- Channels use locks very sparingly for maximum performance.
Usage
Add this to your Cargo.toml
:
[dependencies]
crossbeam-channel = "0.4"
Compatibility
Crossbeam Channel supports stable Rust releases going back at least six months, and every time the minimum supported Rust version is increased, a new minor version is released. Currently, the minimum supported Rust version is 1.36.
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
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.
Third party software
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.