async-unsync

Crates.ioasync-unsync
lib.rsasync-unsync
version0.3.0
sourcesrc
created_at2023-03-31 18:40:46.28105
updated_at2024-03-12 13:06:30.299573
descriptionasynchronous, unsynchronized (thread-local) channels and semaphores
homepage
repositoryhttps://github.com/oliver-giersch/async-unsync.git
max_upload_size
id826663
size141,110
(oliver-giersch)

documentation

README

async-unsync - Single Threaded Async Channels

Build Status crates.io

A Rust library for asynchronous but unsynchronized (single-threaded) communication primitives, primarily channels and semaphores with an API that is designed to be as similar to tokio::sync as possible.

Most async executors use multi-threaded runtimes and consequently, most synchronization primitives are implemented to be thread-safe, thus incurring the associated synchronization overhead. By restricting their use to single-threaded/thread-local tasks only, the synchronization overhead can be entirely avoided, resulting in up to 10x faster channel operations.

Usage

To use this crate, add the following to your Cargo.toml:

[dependencies]
async-unsync = "0.2.2"

Cargo Features

  • std: Enabled by default, includes alloc and adds Error implementations for error types
  • alloc: Enabled by default, required for bounded and unbounded channels

License

This project is licensed under either of

at your choice.

Commit count: 31

cargo fmt