#task-scheduling #data-structures #work-stealing

no-std takeaway

An efficient work-stealing task queue with prioritization and batching

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

Download history 2/week @ 2025-10-03

261 downloads per month

MIT/Apache

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