anyspawn 0.2.0

A generic task spawner compatible with any async runtime.
Documentation

Anyspawn

crate.io docs.rs MSRV CI Coverage License

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("threadpool", |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