LibSync

  • 8th May 2024
  • 3 min read
  • Last updated on 22nd Feb 2026

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

FeatureDescription
crossbeamEnable the crossbeam sub-module.
crossbeam-queueEnable the crossbeam-queue sub-module.
tokioEnable the tokio-helpers sub-module and relevant tests.
sccEnable the scc sub-module.
stdEnable the std sub-module.
use_std_syncUse std synchronisation objects.
use_parking_lot_syncUse parking_lot synchronisation objects.
use_parking_lot_fair_syncUse 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:

  • Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0 (see also: https://www.tldrlegal.com/license/apache-license-2-0-apache-2-0))
  • MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT (see also: https://www.tldrlegal.com/license/mit-license))

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.