All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- This release supports Bevy 0.19.
0.13.0 - 2026-06-24
- This release supports Bevy 0.19.
0.12.0 - 2026-01-28
- This release supports Bevy 0.18.
TimeoutErroris nowCloneandCopy
0.11.1 - 2025-12-21
- This release supports Bevy 0.17.
- Removed the need for tokio channels internally to reduce dependency graph
- Re-applied
async-compatto native futures due to tokio reactor conflicts on native (particularly with reqwest).
0.11.0 - 2025-12-12
- This release supports Bevy 0.17.
- Added
AsyncStreamandTaskStream, functional equivalents ofAsyncTaskandTaskRunnerfor streams (aka async iterators). See the streaming example. - Added
.forget()toTaskRunnerandTimedTaskRunner. - Added
.forget_all()toTaskPoolandTimedTaskPool.
- Removed
DereffromTaskRunnerandTimedTaskRunner. - Removed
DerefMutfromTaskRunnerandTimedTaskRunner.
- It was possible to use a duration over
i32::MAXin millis forAsyncTask::with_duration(&mut self).
0.10.0 - 2025-11-28
- This release supports Bevy 0.17.
- Added
AsyncStreamandTaskStream, functional equivalents ofAsyncTaskandTaskRunnerfor streams (aka async iterators). See the streaming example. - Added
bevy_async_task::MAX_TIMEOUT - Added
bevy_async_task::DEFAULT_TIMEOUT
- Removed
bevy_async_task::Duration. Usecore::time::Durationinstead. - The default timeout for timed tasks, was changed from
u16::MAXmillis (~65 seconds) to 60 seconds. - The maximum timeout allowed is now
i32::MAX. This is now enforced with a panic.
- A
time not implemented on this platformpanic due towasm-bindgenfeature not being included for thefutures-timercrate. You can remedy this yourself for older versions ofbevy_async_taskby includingfutures-timer = { version = "3.0.3", features = ["wasm-bindgen"] }in your Cargo.toml file.
0.9.0 - 2025-10-09
- This release supports Bevy 0.17.
- Migrated to Bevy 0.17.
0.8.1 - 2025-07-14
bevy_async_taskno longer depends on the entirebevycrate — only the relevant subcrates (e.g.,bevy_ecs).
0.8.0 - 2025-06-10
- Exposed utility functions:
timeout,sleep, andpending. - Added
AsyncTask::sleep.
0.7.0 - 2025-05-03
- Replaced the
TaskErrorenum with aTimeoutErrorstruct.
- Fixed a panic on WebAssembly (WASM) when timeouts exceeded numerical bounds.
0.6.0 - 2025-03-17
- Updated to Bevy 0.16.
0.5.0 - 2024-12-22
- Updated to Rust 2024 Edition.
- Split
AsyncTaskRunnerintoTimedTaskRunnerandTaskRunner. The timed variant polls timeouts. - Split
AsyncTaskPoolintoTimedTaskPoolandTaskPool. The timed variant polls timeouts. - Renamed
AsyncTask::buildtoAsyncTask::split.
0.4.1 - 2024-10-11
- Removed repetitive console warnings about polling tasks.
0.4.0 - 2024-09-30
- Reintroduced
AsyncTask::with_timeout().
poll()anditer_poll()now returnResult<T, TimeoutError>.- Replaced
std::time::Durationwithweb_time::Duration. - Replaced
into_parts()withbuild().
0.3.0 - 2024-06-09
- Implemented
Debugfor many types.
- Updated to Bevy 0.15.
- Replaced
AsyncTaskStatuswithstd::task::Poll.- To check if a task runner or pool is idle, use
<AsyncTaskRunner>::is_idle()or<AsyncTaskPool>::is_idle().
- To check if a task runner or pool is idle, use
- Made
TimeoutErrornon-exhaustive for forward compatibility.
- Removed
blocking_recv()functions. Usebevy::tasks::block_on(fut)instead. - Temporarily removed
AsyncTask::with_timeout()pending rework. UseAsyncTask::new_with_duration(duration, f)as an alternative.
- Timeouts now function correctly on
wasm32. AsyncReceivernow uses anAtomicWakerto ensure the sender isn’t dropped prematurely.
0.2.0 - 2024-03-14
- Updated to Bevy 0.14.
- Fixed blocking example for web targets.
0.1.1 - 2024-02-09
- Re-uploaded README to correct #10.
0.1.0 - 2024-02-01
- Initial release.
- Crate renamed from
bevy-async-tasktobevy_async_taskand republished.