💂 Aide-De-Camp
Built with ❤️ by Zero Assumptions
Aide-De-Camp is a backend agnostic delayed job queue. Very similar to girl_friday
from the Ruby world.
Notable features:
- Asynchronous. Built from the ground-up using async/await for maximum concurrency.
- Backend agnostic1. This crate won't force you to run any additional software you don't want to.
- Flexible scheduling. Schedule your job to run right now, in time relative to now or at a specific future time.
- Binary Payloads. Job payloads serialized with bincode for maximum speed and space efficiency.
- Concurrency limits. Specify desired concurrency for each runner.
- Job Router. Run as many job types as you want and limit which runners can process which jobs.
- Cross Platform. Runs anywhere rust has standard lib.
- Traced. All important functions are instrumented.
Pick a backend1 that suits you and add following to your Cargo.toml
:
# Cargo.toml
[dependencies]
aide-de-camp = "0.2.0"
aide-de-camp-sqlite = "0.2.0" # Or any other available backend
aide-de-camp-sqlite
has a pretty detailed example of how to use this crate.
- core. Traits and error types meant to be used by aide-de-camp ecosystem.
- runner. Optional module (
runner
feature enabled by default) that contains default implementations of runner, job router and types required for their work.
Choose licensing under either of the following for your use case:
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
- Build a Job Queue with Rust Using Aide-De-Camp (Part 1)
- Build a Job Queue with Rust Using Aide-De-Camp (Part 2)
Contributions are subject to CLA (Contributor License Agreement). Any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.