NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #583 most downloaded on crates.io
A thread pool for isolating blocking I/O in async programs
Last release 1 months ago
23 Aug 2026
Release timing varies
gaps range from 2 weeks to 1.1 years
Nearly every release is documented
notes for 32 of 32 stable releases
1 version withdrawn
withdrawn after publishing
7 years old
33 releases · first in 2019
Avoid Option<> indirection via VecDeque.
Fix build failure with minimal-versions.
One column per quarter.
Remove our dependency on the async-lock crate.
async-lock crate. (#59)Panics that occur in unblock ed functions are now propagated to the calling function.
Fix compilation on WebAssembly targets ( #54 ).
Bump MSRV to 1.61.
Change the error_span in grow_pool into trace_span .
error_span in grow_pool into trace_span. (#45)Remove the unused memchr dependency.
Gracefully handle the inability to spawn threads.
Remove the dependency on the once_cell crate to restore the MSRV.
once_cell crate to restore the MSRV. (#30)Return Task from unblock instead of returning opaque type.
Task from unblock instead of returning opaque type. (#25)Add an environment variable to customize the maximum number of threads.
- Update futures-lite.
futures-lite.- Use async-task.
async-task.- Stabilize.
Add probabilistic yielding to improve fairness.
- Remove the unblock! macro.
unblock! macro.- Implement Sync for Unblock.
Sync for Unblock.An optimization in task spawning.
Unblock::with_capacity().unblock() function.Simplify the API to just unblock! and Unblock.
unblock! and Unblock.Simplify dependencies for faster compilation.
- Update doc comment on Unblock.
Unblock.Implement AsyncSeek/Seek for Unblock/BlockOn.
AsyncSeek/Seek for Unblock/BlockOn.Remove the initial poll in block_on that caused lost wakeups.
Fix a bug where a closed Receiver causes panics.
Receiver causes panics.- Start thread numbering from 1.
Attach names to spawned threads.
Remove Future impl for Blocking.
Future impl for Blocking.unblock().blocking! to unblock!.Blocking to Unblock.block_on(), block_on!, and BlockOn.Make Blocking implement Send in more cases.
Blocking implement Send in more cases.- Add Blocking::with_mut().
Blocking::with_mut().Implement Future for Blocking only when the inner type is a FnOnce.
Blocking::spawn().Future for Blocking only when the inner type is a FnOnce.- Initial version
- Reserved crate name
Your coding agent can read these notes before it upgrades. Set up the MCP server →