A modern, async-first, type-safe task queue for Python. Built with asyncio, featuring 5 queue backends (Redis, PostgreSQL, MySQL, RabbitMQ, AWS SQS), automatic ORM serialization, and enterprise-grade reliability.
# Install with your preferred driver
uv add "asynctasq[redis]"
# Configure environment
asynctasq publish # Generate .env.example template
cp .env.example .env # Edit with your settingsDefine and dispatch tasks:
from asynctasq import init, run, task
init() # Loads from .env
@task
async def send_email(to: str, subject: str):
print(f"Sending to {to}: {subject}")
return f"Email sent to {to}"
# Dispatch tasks
async def main():
task_id = await send_email(to="user@example.com", subject="Welcome!").dispatch()
print(f"Task dispatched: {task_id}")
if __name__ == "__main__":
run(main())Run workers:
uv run asynctasq worker --queues defaultSee the full Quick Start guide for complete examples with Redis setup, class-based tasks, and configuration chaining.
- Installation – Installation instructions
- Configuration – Complete configuration guide
- Environment Variables – .env file support and configuration
- Task Definitions – Function-based and class-based tasks
- Queue Drivers – Redis, PostgreSQL, MySQL, RabbitMQ, AWS SQS
- Running Workers – CLI and programmatic workers
- Monitoring – Event streaming and queue statistics
- ORM Integrations – SQLAlchemy, Django, Tortoise
- Framework Integrations – FastAPI integration
- CLI Reference – Command reference
- Best Practices – Production guidelines
Examples:
True async-first architecture – Built with asyncio from the ground up, not retrofitted onto sync foundations like Celery/RQ. Four execution modes (async I/O, sync I/O, async CPU, sync CPU) for optimal performance.
Intelligent serialization – Automatic ORM model handling (SQLAlchemy, Django, Tortoise) with msgpack encoding reduces payloads by 90%+. Pass models directly as task arguments.
Enterprise reliability – ACID guarantees (PostgreSQL/MySQL), dead-letter queues, crash recovery via visibility timeouts, graceful shutdown, and real-time event streaming.
Zero vendor lock-in – 5 production backends (Redis, PostgreSQL, MySQL, RabbitMQ, AWS SQS) with identical API. Switch drivers with one config line.
Developer experience – Type-safe and IDE support, elegant Laravel-inspired API, method chaining, beautiful Rich-formatted output, and first-class FastAPI integration.
- ✅ Async-first with native asyncio throughout
- ✅ 5 queue backends: Redis, PostgreSQL, MySQL, RabbitMQ, AWS SQS
- ✅ Type-safe with full type hints and IDE support
- ✅ 4 execution modes: async I/O, sync I/O (threads), CPU-bound (processes)
- ✅ ORM integration: Auto-serialization for SQLAlchemy, Django, Tortoise
- ✅ msgpack serialization: 2-3x faster than JSON
- ✅ ACID guarantees (PostgreSQL/MySQL)
- ✅ Dead-letter queues for failed task inspection
- ✅ Environment & .env file support
- ✅ FastAPI integration with lifecycle management
- ✅ Real-time event streaming via Redis Pub/Sub
- ✅ Beautiful console output with Rich formatting
- ✅ Graceful shutdown with signal handlers
- ✅ Configurable retries with custom logic hooks
AsyncTasQ differentiates itself with true async-first architecture, ORM auto-serialization, 5 production backends (Redis, PostgreSQL, MySQL, RabbitMQ, SQS), ACID guarantees, and dead-letter queues.
| Feature | AsyncTasQ | Celery | ARQ | Dramatiq | RQ | Huey |
|---|---|---|---|---|---|---|
| Async | ✅ Native | ❌ No | ✅ Yes | ❌ No | ||
| Type Safety | ✅ Full type hints and IDE support | ✅ Yes | ✅ Yes | ✅ Yes | ||
| Backends | 5 | 3 | 1 | 2 | 1 | 4 |
| ORM Auto-serialization | ✅ Yes | ❌ No | ❌ No | ❌ No | ❌ No | ❌ No |
| ACID | ✅ Yes | ❌ No | ❌ No | ❌ No | ❌ No | ❌ No |
| DLQ | ✅ Built-in | ❌ No | ✅ Yes | ❌ No | ❌ No | |
| FastAPI | ✅ Native |
Choose AsyncTasQ for: Modern async apps (FastAPI, aiohttp), type-safe codebases, automatic ORM handling, enterprise ACID requirements, multi-backend flexibility.
Choose alternatives for: Mature ecosystems with many plugins (Celery), cron scheduling (Huey, ARQ), simple sync applications (RQ), or existing large codebases.
See CONTRIBUTING.md for setup and development workflow:
just init # One-line setup with deps and hooks
just docker-up # Start Redis, PostgreSQL, MySQL, RabbitMQ, LocalStack
just test # Run all tests (or just test-unit / just test-integration)
just ci # Full CI suite locally- SQLite & Oracle drivers
- Task chaining & workflows
- Rate limiting & task priority
- Scheduled/cron tasks
MIT License – see LICENSE.
Links: Repository • Issues • Discussions
Built with ❤️ by Adam Refaey