libsync 0.3.0

A channels library
docs.rs failed to build libsync-0.3.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build: libsync-0.2.0

LibSync

Crates.io License Downloads Docs Twitch Status

X | Twitch | Youtube | Mastodon | GitHub | GitHub Sponsors

LibSync is a library which contains channel implementations and objects used to produce channel implementations.

Use the channel implementations in the crossbeam_queue and scc modules as the crossbeam module is probably going to be removed. 

Valid Features

Feature Description
crossbeam Enable the crossbeam sub-module.
crossbeam-queue Enable the crossbeam-queue sub-module.
tokio Enable the tokio-helpers sub-module and relevant tests.
scc Enable the scc sub-module.
std Enable the std sub-module.
use_std_sync Use std synchronisation objects.
use_parking_lot_sync Use parking_lot synchronisation objects.
use_parking_lot_fair_sync Use fair parking_lot synchronisation objects where possible.

Required Features

Must be built with either use_std_sync, use_parking_lot_sync or use_parking_lot_fair_sync included in the features list.

Compiler:

Build with the latest stable compiler.

Todo

  • Add more documentation
  • Add more tests
  • Decide on what is staying in the library.
  • Add async-runtime specific functionality to the crossbeam_queue and scc oriented channels (e.g. timeout methods). 
  • Add an std VecDeque oriented channel implementation.

Maybe

  • Add more channel implementations using queue implementations of other crates that this crate doesn’t already conditionally depend on.

Coding Style

This project uses a coding style that emphasises the use of white space over keeping the line and column counts as low as possible.

So this:

fn bar() {}

fn foo()
{

    bar();

}

Not this:

fn bar() {}

fn foo()
{
    bar();
}

License

Licensed under either of:

at your discretion

Contributing

Please clone the repository and create an issue explaining what feature or features you'd like to add or bug or bugs you'd like to fix and perhaps how you intend to implement these additions or fixes. Try to include details though it doesn't need to be exhaustive and we'll take it from there (dependant on availability).

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.