This bevy plugin provides improvements to handling of background tasks. It adds a Commands extension to more easily place a Future onto bevy's TaskPool and upon completion it will send a callback in the form of an event containing the result.
Check out the basic_usage example with
cargo run --example basic_usage
In order to keep track of running tasks and to produce completion events every type returned by your Futures has to be registered using the BackgroundComputePlugin<T>.
rust ignore
app.add_plugin(BackgroundComputePlugin::<MyType>::default())
rust ignore
commands.compute_in_background(async {
    // Your code here
});
rust ignore
// Create a system consuming BackgroundComputeComplete<T> events
fn my_callback_sys(
    mut events: EventReader<BackgroundComputeComplete<MyResult>>
) {
    // Handle like any other bevy event
}
Plugin | Bevy --- | --- 0.1 | 0.8 0.2 | 0.9