dyn-future 2.0.0

Convenient and fast dynamic Futures for Rust.
Documentation
use criterion::{criterion_group, criterion_main, Criterion, black_box};
use futures::future::{self, Future, FutureExt};
use rayon::prelude::*;

fn run_boxed(n: u64) -> Vec<Box<dyn Future<Output = u64> + Send>> {
    (0..131072).into_par_iter().map(|_| Box::new(future::ready(n).then(|n| future::ready(n * 2))) as Box<dyn Future<Output = u64> + Send>).collect()
}

fn criterion_benchmark(c: &mut Criterion) {
    c.bench_function("boxed-future", |b| b.iter(|| run_boxed(black_box(20))));
}

criterion_group!(benches, criterion_benchmark);
criterion_main!(benches);