Skip to content

lame-nickname/comm

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 96.5%
  • CSS 3.5%