#waker #future #io #cross-platform #api-bindings #platform-agnostic

smelling_salts

Abstraction over OS APIs to handle asynchronous device waking

21 releases (11 breaking)

0.12.1 Feb 21, 2023
0.11.0 Jan 22, 2023
0.9.2 Dec 10, 2022
0.8.0 Oct 17, 2022
0.1.0 May 3, 2020

#426 in Asynchronous

Download history 42/week @ 2023-12-18 7/week @ 2023-12-25 4/week @ 2024-01-01 29/week @ 2024-01-08 16/week @ 2024-01-15 29/week @ 2024-01-22 12/week @ 2024-01-29 15/week @ 2024-02-05 129/week @ 2024-02-12 98/week @ 2024-02-19 161/week @ 2024-02-26 127/week @ 2024-03-04 228/week @ 2024-03-11 60/week @ 2024-03-18 34/week @ 2024-03-25 353/week @ 2024-04-01

690 downloads per month
Used in 8 crates (6 directly)

Apache-2.0 OR BSL-1.0 OR MIT

19KB
278 lines

Smelling Salts

Changelog | Source | Getting Started

tests docs crates.io

Abstraction over OS APIs to handle asynchronous device waking.

About

If you're writing a Rust library to handle hardware asynchronously, you should use this crate. This library automatically wakes futures by registering a waker with a device that you construct with a file descriptor.

Currently Supported APIs

  • Epoll (Linux)

Planned APIs

  • Run loops (MacOS)
  • Kqueue (BSD/MacOS)
  • IOCP (Windows)
  • Various Bare Metal?
  • Others?

MSRV

The minimum supported Rust version of Smelling Salts is 1.66; bumping the MSRV is considered a breaking change and requires incrementing the leftmost version number.

License

Licensed under any of

at your option.

Contribution

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 licensed as described above, without any additional terms or conditions.

Help

If you want help using or contributing to this library, feel free to send me an email at aldaronlau@gmail.com.

Dependencies

~58KB