1 unstable release
Uses new Rust 2024
| 0.1.0 | Jan 29, 2026 |
|---|
#2045 in Asynchronous
18KB
106 lines
A generic task spawner compatible with any async runtime.
This crate provides a Spawner type that abstracts task spawning across
different async runtimes without generic infection.
Design Philosophy
- Concrete type: No generics needed in your code
- Simple: Use built-in constructors or provide a closure
- Flexible: Works with any async runtime
Quick Start
Using Tokio
use anyspawn::Spawner;
let spawner = Spawner::new_tokio();
let result = spawner.spawn(async { 1 + 1 }).await;
assert_eq!(result, 2);
Custom Runtime
use anyspawn::Spawner;
let spawner = Spawner::new_custom(|fut| {
std::thread::spawn(move || futures::executor::block_on(fut));
});
// Returns a JoinHandle that can be awaited or dropped
let handle = spawner.spawn(async { 42 });
Features
tokio(default): Enables theSpawner::new_tokioconstructorcustom: Enables theSpawner::new_customconstructor
This crate was developed as part of The Oxidizer Project. Browse this crate's source code.
Dependencies
~1.8–2.5MB
~35K SLoC