A Rust implementation of the Celery protocol, fully compatible with Python workers and producers.
Inspired by, well... Celery, but also batch-rs especially for it's awesome macro implementation.
Features
- Send tasks from Python to Rust or vice versa
โ๏ธ - Use provided brokers and backends or implement your own ๐ง
- Natural async / await interface ๐
- Easily customizable with callbacks โ๏ธ
- High performance and safe ๐ฅ ๐ฅ ๐ฅ
Examples
The ./examples
directory contains a simple Celery app that is implemented in both Python and Rust using an AMQP broker. Before running the examples you'll need to set the environment variable AMQP_ADDR
to your broker URL.
Then send a task from Python to Rust by running
bash ./examples/python_to_rust.sh
Similary, send a task from Rust to Python by running
bash ./examples/rust_to_python.sh
Missing features
Rusty Celery is still in the early stages and therefore there are several features of the Celery protocol that are still missing. To see what's currently missing search for issues with the label "Protocol Feature".
Contributing
We welcome contributors! If you're interesting in contributing, a good place to start would be any issue marked with the label "Status: Help Wanted".
Team
Rusty Celery is an open source project backed by Structurely. Structurely is a start-up building customizable AI inside sales agents.