#async-runtime #tokio-runtime #async

yaaral

yet another async runtime abstraction library

8 releases (4 breaking)

Uses new Rust 2024

new 0.5.1 Jan 31, 2026
0.5.0 Oct 26, 2025
0.4.0 Sep 6, 2025
0.3.1 Aug 25, 2025
0.1.0 Aug 27, 2024

#1062 in Asynchronous

Download history 119/week @ 2025-10-11 116/week @ 2025-10-18 211/week @ 2025-10-25 62/week @ 2025-11-01 71/week @ 2025-11-08 32/week @ 2025-11-15 50/week @ 2025-11-22 59/week @ 2025-11-29 41/week @ 2025-12-06 110/week @ 2025-12-13 74/week @ 2025-12-20 83/week @ 2025-12-27 141/week @ 2026-01-03 108/week @ 2026-01-10 123/week @ 2026-01-17 192/week @ 2026-01-24

595 downloads per month
Used in 5 crates (4 directly)

MIT license

45KB
817 lines

stable pipeline stable pipeline docs crates.io

yaaral: yet another async runtime abstraction library

yaaral is an abstraction to select between the runtime of tokio, futures-executor and std-async. Its development is driven by the need of the auKsys and CylonCore projects. Feel free to submit any pull requests for your own needs.

Compatibilities

yaaral futures tokio bevy
0.5.1- 0.3.x 1.x 0.17.x-0.18.x (1)
0.5.0 0.3.x 1.x 0.17.x
0.2.x-0.4.x 0.3.x 1.x 0.16.x
0.1.x 0.3.x 1.x -

1: bevy 0.18 support is available through the bevy_runtime_018 feature.

How to use?

In cargo.toml:

futures-executor

  • use the following for support with futures-executor:
yaaral = { version = "0.3", features = ["futures_runtime"] }
use yaaral::{Config, futures::Runtime, prelude::*};
let runtime = Runtime::new(Config::new().prefix("thread-name-"));

tokio

  • use the following for support with tokio:
yaaral = { version = "0.2", default-features = false, features = ["tokio_runtime"] }

In code, you can start a new runtime with:

use yaaral::{Config, tokio::Runtime, prelude::*};
let runtime = Runtime::new(Config::new().prefix("thread-name-"));

bevy

  • use the following for support with tokio:
yaaral = { version = "0.3", default-features = false, features = ["bevy_runtime"] }
let runtime = yaaral::bevy::async_compute_task_pool();
let runtime = yaaral::bevy::io_task_pool();

Dependencies

~0–19MB
~209K SLoC