/comm

Communication primitives

Primary LanguageRustMIT LicenseMIT

comm

Primitives for inter-thread communication. See the documentation for a list of features provided by this crate.

Documentation

Comparison with the std::sync implementation

_ 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.)

Usage

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;

Bugs

There are some tests but, given the nature of multi-threaded code, some bugs might only show up in production.

License

MIT