Skip to main content

AsyncTasQ: A modern, async-first, type-safe task queue Python package inspired by Laravel. Runs on uvloop for maximum performance. Native FastAPI integration. Switch between multiple queue backends (Redis, PostgreSQL, MySQL, RabbitMQ, AWS SQS) with one config line. Automatic, smart ORM serialization (SQLAlchemy, Django, Tortoise) using msgpack reduces payloads by 90%+.

Project description

AsyncTasQ

Tests Coverage Python Version PyPI Version License: MIT

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.

Table of Contents

Quick Start

# Install with your preferred driver
uv add "asynctasq[redis]"

# Configure environment
asynctasq publish  # Generate .env.example template
cp .env.example .env  # Edit with your settings

Define 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 default

See the full Quick Start guide for complete examples with Redis setup, class-based tasks, and configuration chaining.

Documentation

Examples:

Why AsyncTasQ?

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.

Key Features

  • 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

Comparison with Alternatives

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 ⚠️ Limited ❌ No ⚠️ Limited
Type Safety ✅ Full type hints and IDE support ⚠️ External ✅ Yes ✅ Yes ✅ Yes ⚠️ Limited
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 ⚠️ Manual ❌ No ✅ Yes ❌ No ❌ No
FastAPI ✅ Native ⚠️ Manual ⚠️ Manual ⚠️ Manual ⚠️ Manual ⚠️ Manual

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.

Contributing

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

Roadmap

  • SQLite & Oracle drivers
  • Task chaining & workflows
  • Rate limiting & task priority
  • Scheduled/cron tasks

License & Support

MIT License – see LICENSE.

Links: RepositoryIssuesDiscussions

Built with ❤️ by Adam Refaey

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

asynctasq-1.7.0.tar.gz (120.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

asynctasq-1.7.0-py3-none-any.whl (159.2 kB view details)

Uploaded Python 3

File details

Details for the file asynctasq-1.7.0.tar.gz.

File metadata

  • Download URL: asynctasq-1.7.0.tar.gz
  • Upload date:
  • Size: 120.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for asynctasq-1.7.0.tar.gz
Algorithm Hash digest
SHA256 7daf4b31e7c7bd952014181a10dbbb56631cb81fceecb5326967cb31a99dc93e
MD5 f00e2c5518e10cec78330b508570ce8d
BLAKE2b-256 ebf816cc2d2b8d7c8410e88ed82e3880c08b19381bebf76d171f6f23f9089607

See more details on using hashes here.

File details

Details for the file asynctasq-1.7.0-py3-none-any.whl.

File metadata

  • Download URL: asynctasq-1.7.0-py3-none-any.whl
  • Upload date:
  • Size: 159.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for asynctasq-1.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f1cc5b391b974c3c5262a93a6b72eee66f129c5df627ca7b8105693d914ac225
MD5 eb469d55c7ed460811540db678220262
BLAKE2b-256 425461c12f288c9b160aad4eee02ffe8faa81ef8e3bd08ed8b11b1d68df46adf

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page