dramatiq: Fast & Reliable Background Task Processing for Python 3
This repository profile is provided by osrepos.com, an open source repository discovery platform.

Summary
dramatiq is a powerful and efficient Python 3 library designed for processing background tasks. It enables developers to offload time-consuming operations to a separate process, improving application responsiveness. With robust support for message brokers like RabbitMQ and Redis, dramatiq ensures reliable and scalable task execution.
Repository Information
Topics
Click on any tag to explore related repositories
Use at your own risk
OSRepos shares public repositories for knowledge and discovery only. Any installation, execution, configuration, or use of code from these repositories is the user's own responsibility. Always review the repository, source code, dependencies, licenses, and security implications before running or installing anything. OSRepos is not responsible for issues, damages, or losses resulting from third-party repositories.
Introduction
dramatiq is a powerful and efficient Python 3 library designed for processing background tasks. It offers a fast and reliable way for applications to offload long-running or resource-intensive operations, ensuring that the main application thread remains responsive. By leveraging message brokers like RabbitMQ and Redis, dramatiq facilitates robust and scalable distributed task execution, making your applications more performant and resilient.
Installation
To get started with dramatiq, you can install it via pip. Choose the installation method based on your preferred message broker:
If you want to use it with RabbitMQ:
pip install 'dramatiq[rabbitmq, watch]'
Or if you want to use it with Redis:
pip install 'dramatiq[redis, watch]'
Examples
Here's a quickstart example demonstrating how to define and dispatch a background task using dramatiq. First, create a file named example.py:
import dramatiq
import requests
import sys
@dramatiq.actor
def count_words(url):
response = requests.get(url)
count = len(response.text.split(" "))
print(f"There are {count} words at {url!r}.")
if __name__ == "__main__":
count_words.send(sys.argv[1])
In one terminal, run your dramatiq workers:
dramatiq example
In another terminal, you can start enqueueing messages:
python example.py http://example.com
python example.py https://github.com
python example.py https://news.ycombinator.com
Why use dramatiq?
dramatiq stands out as an excellent choice for background task processing due to several key advantages:
- Speed and Reliability: Engineered for high performance and dependable task execution, even under heavy loads.
- Python 3 Focus: Built specifically for modern Python development, taking advantage of its features.
- Broker Flexibility: Seamlessly integrates with popular message brokers such as RabbitMQ and Redis, offering flexibility in your infrastructure.
- Improved Responsiveness: Offloads time-consuming tasks, preventing your main application from freezing and enhancing user experience.
- Scalability: Supports distributed task processing, allowing you to scale your background workers independently.
- Simple API: Provides a straightforward and intuitive API for defining actors and dispatching tasks.
Links
- Documentation: https://dramatiq.io
- Community: https://groups.io/g/dramatiq-users
- Changelog: https://dramatiq.io/changelog.html
- GitHub Repository: https://github.com/Bogdanp/dramatiq
- RabbitMQ: https://www.rabbitmq.com/
- Redis: https://redis.io
Related repositories
Similar repositories that may be relevant next.

RQ: Simple Job Queues for Python with Redis/Valkey
August 5, 2026
RQ (Redis Queue) is a straightforward Python library designed for managing job queues and processing tasks in the background. It leverages Redis or Valkey for backend storage, offering a low barrier to entry while ensuring excellent scalability for applications of all sizes. Developers can easily integrate RQ into their web stacks to handle asynchronous operations efficiently.
Jinja: A Fast and Expressive Python Template Engine
August 5, 2026
Jinja is a powerful, high-performance templating engine for Python, known for its speed and expressive syntax. It offers features like template inheritance, autoescaping for security, and async support, making it a versatile choice for generating dynamic content for web applications and more.
Green: A Clean, Colorful, and Fast Python Test Runner
August 4, 2026
Green is an innovative Python test runner designed for clarity, speed, and visual appeal. It provides a clean, colorful, and fast way to execute `unittest` based tests, enhancing the developer experience with detailed, aligned output and parallel execution.

httmock: A Powerful Mocking Library for Python Requests
August 3, 2026
httmock is an essential Python library designed for mocking HTTP requests made by the popular `requests` library. It allows developers to easily simulate API responses, making it ideal for testing applications that interact with external services. With httmock, you can control network interactions, ensuring reliable and repeatable tests without relying on actual network calls.
Source repository
Open the original repository on GitHub.