Skip to content

KhaosResearch/dramaX

Repository files navigation

CI Python >=3.7 Code style: black

dramaX is a distributed workflow runner for Python.

It uses RabbitMQ as a message broker and Dramatiq as a task queue.

Getting Started

Prerequisites

You can set up a minimal development environment using docker compose:

docker compose up -d

Install

If you are feeling lucky and want to install the latest version from source, clone the repository and install the dependencies:

git clone git@github.com:KhaosResearch/dramaX.git
cd dramaX
python -m pip install -e .

Usage

Create a .env.local file similar to .env.example and fill in the values. A full list of configuration variables can be found in dramax/settings.py. Then, you can run the command line client tool:

dramax -h

Deploy server (optional)

Server can be deployed with uvicorn, a lightning-fast ASGI server, using the command-line client tool:

dramax server

Online documentation will be available at /api/docs.

Spawn workers

Workers execute tasks in the background. They can be spawned using the command-line client tool:

dramax worker --processes 1

For a full list of valid command line arguments that can be passed to dramax worker, checkout dramatiq -h

License

Copyright 2023 Khaos Research, all rights reserved.