takeaway

Crates.iotakeaway
lib.rstakeaway
version0.1.0
created_at2025-07-06 21:26:55.539665+00
updated_at2025-08-11 07:53:41.026105+00
descriptionAn efficient work-stealing task queue with prioritization and batching.
homepagehttps://git.sr.ht/~bal-e/takeaway
repositoryhttps://git.sr.ht/~bal-e/takeaway
max_upload_size
id1740456
size360,162
arya dradjica (bal-e)

documentation

README

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.

Commit count: 0

cargo fmt