#run-time #async #async-trait #abstraction-layer #sans #async-await

no-std agnostic-lite

agnostic-lite is an agnostic abstraction layer for any async runtime

6 releases

Uses new Rust 2024

0.5.5 Feb 24, 2025
0.4.0 Jan 27, 2025
0.3.17 Dec 22, 2024
0.3.16 Oct 6, 2024
0.3.13 Mar 26, 2024

#2272 in Asynchronous

Download history 64/week @ 2024-11-18 56/week @ 2024-11-25 36/week @ 2024-12-02 54/week @ 2024-12-09 853/week @ 2024-12-16 680/week @ 2024-12-23 186/week @ 2024-12-30 469/week @ 2025-01-06 557/week @ 2025-01-13 184/week @ 2025-01-20 1542/week @ 2025-01-27 748/week @ 2025-02-03 355/week @ 2025-02-10 1012/week @ 2025-02-17 912/week @ 2025-02-24 1264/week @ 2025-03-03

3,576 downloads per month
Used in 25 crates (11 directly)

MIT/Apache

175KB
4.5K SLoC

Agnostic-Lite

agnostic-lite is an agnostic abstraction layer for any async runtime.

In order to make it trivial for others to build implementations of any async runtime, this crate provides an abstraction layer implementation.

In addition, this crate is not only no_std, but also alloc-free. This means that it can be used in environments where alloc is not available, such as embedded systems. It also has no unsafe code.

github LoC Build codecov

docs.rs crates.io crates.io license

Introduction

agnostic-lite is an agnostic abstraction layer for any async runtime.

In order to make it trivial for others to build implementations of any async runtime, this crate provides an abstraction layer implementation.

In addition, this crate is not only no_std, but also alloc-free. This means that it can be used in environments where alloc is not available, such as embedded systems. It also has no unsafe code.

agnostic-lite splits the big Runtime trait in agnostic in multiple small traits:

  • AsyncSpawner: trait for spawning tasks
  • AsyncLocalSpawner: trait for spawning local tasks
  • AsyncSleep: trait for sleep functionality
  • AsyncInterval: trait for interval functionality
  • AsyncTimeout: trait for timeout functionality

Builtin supports runtimes:

  • tokio
  • async-std
  • smol
  • wasm-bindgen-futures

Installation

[dependencies]
agnostic-lite = "0.5"

License

agnostic-lite is under the terms of both the MIT license and the Apache License (Version 2.0).

See LICENSE-APACHE, LICENSE-MIT for details.

Copyright (c) 2025 Al Liu.

Dependencies

~0.8–13MB
~175K SLoC