11f31bfdc8
Differential Revision: https://phabricator.services.mozilla.com/D34632 --HG-- rename : third_party/rust/crossbeam-utils-0.3.2/Cargo.toml => third_party/rust/crossbeam-channel/Cargo.toml rename : third_party/rust/crossbeam-utils-0.3.2/LICENSE-APACHE => third_party/rust/crossbeam-channel/LICENSE-APACHE rename : third_party/rust/tokio-uds/LICENSE-MIT => third_party/rust/crossbeam-channel/LICENSE-MIT rename : third_party/rust/tokio-timer/Cargo.toml => third_party/rust/headers-core/Cargo.toml rename : third_party/rust/hyper/LICENSE => third_party/rust/headers-core/LICENSE rename : third_party/rust/tokio-timer/Cargo.toml => third_party/rust/headers-derive/Cargo.toml rename : third_party/rust/hyper/LICENSE => third_party/rust/headers-derive/LICENSE rename : third_party/rust/hyper/LICENSE => third_party/rust/headers/LICENSE rename : third_party/rust/tokio-timer/Cargo.toml => third_party/rust/input_buffer/Cargo.toml rename : third_party/rust/crossbeam-utils-0.3.2/LICENSE-APACHE => third_party/rust/input_buffer/LICENSE-APACHE rename : third_party/rust/hyper/LICENSE => third_party/rust/input_buffer/LICENSE-MIT rename : third_party/rust/tokio-executor/Cargo.toml => third_party/rust/mime/Cargo.toml rename : third_party/rust/crossbeam-utils-0.3.2/LICENSE-APACHE => third_party/rust/mime/LICENSE-APACHE rename : third_party/rust/hyper/LICENSE => third_party/rust/mime/LICENSE-MIT rename : third_party/rust/hyper/LICENSE => third_party/rust/mime_guess/LICENSE rename : third_party/rust/scoped-tls/.cargo-checksum.json => third_party/rust/scoped-tls-0.1.0/.cargo-checksum.json rename : third_party/rust/scoped-tls/Cargo.toml => third_party/rust/scoped-tls-0.1.0/Cargo.toml rename : third_party/rust/crossbeam-utils-0.3.2/LICENSE-APACHE => third_party/rust/scoped-tls-0.1.0/LICENSE-APACHE rename : third_party/rust/tokio-uds/LICENSE-MIT => third_party/rust/scoped-tls-0.1.0/LICENSE-MIT rename : third_party/rust/scoped-tls/README.md => third_party/rust/scoped-tls-0.1.0/README.md rename : third_party/rust/scoped-tls/src/lib.rs => third_party/rust/scoped-tls-0.1.0/src/lib.rs rename : third_party/rust/tokio-uds/LICENSE-APACHE => third_party/rust/serde_urlencoded/LICENSE-APACHE rename : third_party/rust/tokio-uds/LICENSE-MIT => third_party/rust/serde_urlencoded/LICENSE-MIT rename : third_party/rust/tokio-executor/Cargo.toml => third_party/rust/tokio-current-thread/Cargo.toml rename : third_party/rust/tokio-uds/LICENSE-MIT => third_party/rust/tokio-current-thread/LICENSE rename : third_party/rust/tokio-timer/README.md => third_party/rust/tokio-current-thread/README.md rename : third_party/rust/tokio/src/executor/current_thread/mod.rs => third_party/rust/tokio-current-thread/src/lib.rs rename : third_party/rust/tokio/src/executor/current_thread/scheduler.rs => third_party/rust/tokio-current-thread/src/scheduler.rs rename : third_party/rust/tokio-executor/src/lib.rs => third_party/rust/tokio-executor/src/executor.rs rename : third_party/rust/tokio-timer/src/timer/level.rs => third_party/rust/tokio-timer/src/wheel/level.rs rename : third_party/rust/tokio-uds/.cargo-checksum.json => third_party/rust/tokio-uds-0.1.7/.cargo-checksum.json rename : third_party/rust/tokio-uds/Cargo.toml => third_party/rust/tokio-uds-0.1.7/Cargo.toml rename : third_party/rust/crossbeam-utils-0.3.2/LICENSE-APACHE => third_party/rust/tokio-uds-0.1.7/LICENSE-APACHE rename : third_party/rust/tokio-uds/LICENSE-MIT => third_party/rust/tokio-uds-0.1.7/LICENSE-MIT rename : third_party/rust/tokio-uds/README.md => third_party/rust/tokio-uds-0.1.7/README.md rename : third_party/rust/tokio-uds/src/frame.rs => third_party/rust/tokio-uds-0.1.7/src/frame.rs rename : third_party/rust/tokio-uds/src/lib.rs => third_party/rust/tokio-uds-0.1.7/src/lib.rs rename : third_party/rust/tokio-uds/src/ucred.rs => third_party/rust/tokio-uds-0.1.7/src/ucred.rs rename : third_party/rust/tokio-uds/LICENSE-MIT => third_party/rust/tokio-uds/LICENSE rename : third_party/rust/crossbeam-utils-0.3.2/LICENSE-APACHE => third_party/rust/tungstenite/LICENSE-APACHE rename : third_party/rust/hyper/LICENSE => third_party/rust/tungstenite/LICENSE-MIT rename : third_party/rust/tokio-timer/Cargo.toml => third_party/rust/unicase-1.4.2/Cargo.toml rename : third_party/rust/hyper/LICENSE => third_party/rust/unicase-1.4.2/LICENSE rename : third_party/rust/crossbeam-utils/Cargo.toml => third_party/rust/unicase/Cargo.toml rename : third_party/rust/crossbeam-utils-0.3.2/LICENSE-APACHE => third_party/rust/unicase/LICENSE-APACHE rename : third_party/rust/hyper/LICENSE => third_party/rust/unicase/LICENSE-MIT rename : third_party/rust/hyper/LICENSE => third_party/rust/urlencoding/LICENSE rename : third_party/rust/tokio-executor/Cargo.toml => third_party/rust/utf-8/Cargo.toml rename : third_party/rust/tokio-timer/Cargo.toml => third_party/rust/version_check/Cargo.toml rename : third_party/rust/crossbeam-utils-0.3.2/LICENSE-APACHE => third_party/rust/version_check/LICENSE-APACHE rename : third_party/rust/hyper/LICENSE => third_party/rust/warp/LICENSE extra : moz-landing-system : lando |
||
---|---|---|
.. | ||
examples | ||
src | ||
tests | ||
.cargo-checksum.json | ||
CHANGELOG.md | ||
Cargo.toml | ||
LICENSE-APACHE | ||
LICENSE-MIT | ||
LICENSE-THIRD-PARTY | ||
README.md |
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.3"
Next, add this to your crate:
#[macro_use]
extern crate crossbeam_channel;
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.