pfpacket / comm

Communication primitives

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

About

Communication primitives

License:MIT License


Languages

Language:Rust 96.5%Language:CSS 3.5%Language:Shell 0.0%