- Rust 98.9%
- Python 1.1%
| assets | Update benchmarks | |
| benches | Unify Criterion benchmarks | |
| examples | Implement one-shot mode | |
| LICENSES | Set up infrastructure | |
| src | Set enqueuer waker when going to sleep | |
| tests | Implement one-shot mode | |
| .gitignore | [.gitignore] Add profiling-related files | |
| Cargo.lock | Bump to version 0.1.4 | |
| Cargo.toml | Bump to version 0.1.4 | |
| Changelog.md | Bump to version 0.1.4 | |
| README.md | Update benchmarks | |
| REUSE.toml | Note 'crossbeam-utils' code in license talk | |
| rustfmt.toml | Set up infrastructure | |
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.
These benchmarks were recorded on a 16-thread AMD Ryzen 7 7840U
(Zen 4; CPU boost disabled), and can be reproduced by the manual
benchmark. Only results up to 8 threads were recorded to
avoid contention with other system processes.
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.