5 releases
Uses new Rust 2024
| 0.1.0 | Aug 11, 2025 |
|---|---|
| 0.1.0-rc3 | Aug 6, 2025 |
| 0.1.0-rc2 | Jul 20, 2025 |
| 0.1.0-rc1 | Jul 18, 2025 |
| 0.0.1 | Jul 6, 2025 |
#686 in Concurrency
261 downloads per month
290KB
1.5K
SLoC
takeaway: High-performance task queues
takeaway is a Rust library providing a high-performance, work-stealing task
queue data structure. It is perfect for task architectures where:
- There may be thousands of tasks ready to run at any time.
- Tasks are small, synchronous, and CPU-bound.
- All available CPUs should be used to maximum capacity.
- (Optional) Some tasks have a higher priority than others.
- (Optional, coming soon) Grouping certain tasks lets them be executed efficiently.
takeaway tries to provide the lowest overhead possible. It is designed from
the ground up to process everything in batches; this amortizes synchronization
costs and makes way for interesting features like task prioritization.
Alternatives
crossbeam-deque is a popular Rust crate which also provides work-stealing
task queues. However, takeaway provides a higher-level API with more features
and comparable (if not better) performance.
Questions / Contributing
takeaway currently uses the krabby mailing lists. Feel free to reach me
on IRC (bal-e on Libera.Chat) or the krabby-discuss mailing list. Use
krabby-devel for discussing takeaway or sending in patches. You can track
the progress on internal TODO items on the krabby ticket tracker.
Origin
takeaway was developed for krabby, an experimental Rust compiler, due to
the feature limitations of crossbeam-deque. It is offered as a standalone
crate in the hope that it may prove useful for other highly-parallel and
CPU-intensive applications.
License
Copyright (C) 2025 arya dradjica (uhe8ob7m71igsl1d@bal-e.org)
takeaway is available under the MIT or Apache-2.0 licenses, at your option.
Their terms are available in LICENSES/MIT.txt and LICENSES/Apache-2.0.txt
respectively.
In addition, some code from crossbeam-utils has been vendored in, under the
MIT or Apache-2.0 licenses. See REUSE.toml.
Dependencies
~0–11MB
~52K SLoC