Primitives for inter-thread communication. See the documentation for a list of features provided by this crate.
_ | std::sync |
comm |
---|---|---|
Restricted by stability guarantees | ✔1 | ✘ |
Users can use their own channels with Select |
✘ | ✔ |
Select has a safe interface |
✘ | ✔ |
Select can poll all channels in a vector without borrowing the vector |
✘ | ✔ |
Select can be used concurrently from multiple threads |
✘ | ✔ |
Select will be available in 1.0 |
✘ | ✔ |
Contains hot, experimental channels | ✘ | ✔ |
Extensively tested and optimized | ✔ | ✘ |
Web-Scale | ✘ | ✔2 |
1Stability as a Deliverable
2Uses the epoll design.
In general: Channels in Rust don't need and don't have special compiler support. Therefore, channels in the official distribution have all the restrictions that come with the stdlib without getting any benefits (unlike Go channels which are tightly integrated with the language.)
To use comm
, first add this to your Cargo.toml
:
[dependencies.comm]
git = "https://github.com/mahkoh/comm"
comm
is currently not on Crates.io.
Then add this to your crate root:
extern crate comm;
There are some tests but, given the nature of multi-threaded code, some bugs might only show up in production.
MIT