#bevy #background-task #bevy-plugin #task-pool #events #future #callback

bevy_background_compute

Bevy plugin for better task handling

11 releases (7 breaking)

0.8.0 Dec 27, 2024
0.6.0 Dec 27, 2024
0.5.0 Nov 18, 2023
0.2.0 Nov 19, 2022

#402 in Game dev

Download history 2/week @ 2024-09-18 6/week @ 2024-09-25 4/week @ 2024-10-30 5/week @ 2024-11-06 324/week @ 2024-12-25

324 downloads per month

MIT license

16KB
163 lines

Bevy background compute

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.

Full usage example

Check out the basic_usage example with

cargo run --example basic_usage

Registering a type as background computable

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>.

app.add_plugins(BackgroundComputePlugin::<MyType>::default())

Computing a Future in background

commands.compute_in_background(async {
    // Your code here
});

Getting the result

// Create a system consuming BackgroundComputeComplete<T> events
fn my_callback_sys(
    mut events: EventReader<BackgroundComputeComplete<MyType>>
) {
    // Handle like any other bevy event
}

Version compatibility

Plugin Bevy
0.1 0.8
0.2 0.9
0.3 0.10
0.4 0.11
0.5 0.12
0.6 0.13
0.7 0.14
0.8 0.15

Dependencies

~10–19MB
~253K SLoC