#waker #no-alloc #async

no-std wakerset

no_std, no_alloc storage of Wakers embedded in the Future type

8 releases

0.2.5 Sep 2, 2025
0.2.4 Aug 26, 2025
0.2.1 Jun 13, 2025
0.1.1 May 27, 2024

#521 in Concurrency

Download history 366/week @ 2025-12-07 323/week @ 2025-12-14 61/week @ 2025-12-21 10/week @ 2025-12-28 546/week @ 2026-01-04 552/week @ 2026-01-11 241/week @ 2026-01-18 76/week @ 2026-01-25 234/week @ 2026-02-01 375/week @ 2026-02-08 204/week @ 2026-02-15 116/week @ 2026-02-22 150/week @ 2026-03-01 233/week @ 2026-03-08 436/week @ 2026-03-15 431/week @ 2026-03-22

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

MIT license

23KB
295 lines

Asynchronous data structures like channels need to track sets of waiting futures. Holding them in a Vec requires allocation. We can do better by storing pending wakers in the futures themselves and linking them into an intrusive doubly-linked list.

This crate provides a no_std, no_alloc, safe Rust interface to the above strategy. The shared data structure holds a [WakerList] and each pending future holds a [WakerSlot], each of which holds room for one [Waker].


no_std, zero allocation utility crate for efficiently storing sets of Wakers within the Future objects themselves.

Exposes a safe interface and passes MIRI.

Dependencies

~66KB