QuestofIranon/rusty-celery

Rust implementation of Celery for producing and consuming background tasks

โ˜… 0Forks 0GitHub โ†—Compare

README



Build License Crates Docs

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. I also recommend setting RUST_LOG=debug.

Then send a task from Python to Rust by running the script

./examples/python_to_rust.sh

Similary, send a task from Rust to Python by running

./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 that has been using Celery in production back to circa 2017.

Contributors

epwalshtjhall13

Issues