2 releases

0.1.5 Jun 20, 2022
0.1.4 Nov 13, 2020
0.1.2 Sep 10, 2020

#1137 in Asynchronous

Download history 85/week @ 2023-12-18 69/week @ 2023-12-25 81/week @ 2024-01-01 78/week @ 2024-01-08 137/week @ 2024-01-15 119/week @ 2024-01-22 124/week @ 2024-01-29 445/week @ 2024-02-05 331/week @ 2024-02-12 103/week @ 2024-02-19 86/week @ 2024-02-26 361/week @ 2024-03-04 329/week @ 2024-03-11 230/week @ 2024-03-18 122/week @ 2024-03-25 277/week @ 2024-04-01

1,046 downloads per month
Used in 6 crates (2 directly)

Apache-2.0

10KB
83 lines

catty

a picture of a slingshot

Send a value synchronously and asynchronously wait for it. Catty is faster, simpler, and more lightweight than futures::oneshot, which is slightly more flexible.

Example

let (tx, rx) = catty::oneshot();
tx.send("Hello!");
assert_eq!(rx.await, Ok("Hello!"));

Benchmarks

To run the benchmarks with Criterion, simply do cargo bench. On my machine, the results are as follows:

create-futures          time:   [70.934 ns 70.979 ns 71.045 ns]
create-catty            time:   [32.549 ns 32.594 ns 32.650 ns]
oneshot-futures         time:   [146.45 ns 146.76 ns 147.09 ns]
oneshot-catty           time:   [98.497 ns 99.065 ns 99.686 ns]
send-futures            time:   [80.163 ns 80.384 ns 80.680 ns]
send-catty              time:   [39.064 ns 39.206 ns 39.354 ns]

lib.rs:

Send a value and asynchronously wait for it.

Example

let (tx, rx) = catty::oneshot();
tx.send("Hello!");
assert_eq!(rx.await, Ok("Hello!"));

Dependencies

~150KB