#channel #actor #mpmc #notifier #pasts

no-std whisk

Simple and fast lockless async channels

16 releases (breaking)

0.12.0 Jun 2, 2023
0.11.0 Feb 20, 2023
0.10.0 Jan 18, 2023
0.9.1 Nov 26, 2022
0.1.1 Mar 5, 2022

#339 in Concurrency

Download history 138/week @ 2023-10-19 140/week @ 2023-10-26 121/week @ 2023-11-02 168/week @ 2023-11-09 144/week @ 2023-11-16 164/week @ 2023-11-23 162/week @ 2023-11-30 158/week @ 2023-12-07 144/week @ 2023-12-14 173/week @ 2023-12-21 146/week @ 2023-12-28 142/week @ 2024-01-04 131/week @ 2024-01-11 151/week @ 2024-01-18 147/week @ 2024-01-25 140/week @ 2024-02-01

591 downloads per month
Used in 6 crates (5 directly)

Apache-2.0 OR BSL-1.0 OR MIT

28KB
504 lines

Whisk

tests GitHub commit activity GitHub contributors
Crates.io Crates.io Crates.io (recent)
Crates.io Docs.rs

Simple and fast lockless async channels

Simple and fast async channels that can be used to implement futures, streams, notifiers, and actors. Whisk is purposely kept small, implemented in under 1000 lines of Rust code, with zero dependencies (not including feature flags to enable implementation of traits from other crates) - and also works on no_std!

MSRV

Whisk targets Rust 1.65 and later.

Benchmarks

Naïve benchmarks for v0.10.0 actor on pasts runtime (compared with dynamic library):

Dynamic library: 6ns
Whisk (2-thread): 4.396µs
Flume (2-thread): 4.594µs
Whisk (1-thread): 277ns
Flume (1-thread): 325ns

Dependencies