How to run multiple futures concurrently

Run multiple Rust futures concurrently using trpl::join for two tasks or trpl::join_all for a collection.

Use trpl::join to run two futures or trpl::join_all for a collection of futures concurrently.

use std::time::Duration;

trpl::block_on(async {
    let fut_a = async { println!("Task A"); trpl::sleep(Duration::from_millis(100)).await; };
    let fut_b = async { println!("Task B"); trpl::sleep(Duration::from_millis(100)).await; };
    trpl::join(fut_a, fut_b).await;
});

For more than two futures, wrap them in a vector and use trpl::join_all:

use std::time::Duration;

trpl::block_on(async {
    let futures = vec![
        async { println!("Task 1"); trpl::sleep(Duration::from_millis(100)).await; },
        async { println!("Task 2"); trpl::sleep(Duration::from_millis(100)).await; },
    ];
    trpl::join_all(futures).await;
});