Metadata-Version: 2.4
Name: aioq
Version: 0.3.0
Summary: Async job queue with multiple backend support and built-in dashboard
License-File: LICENSE
Requires-Python: >=3.11
Requires-Dist: anyio>=4.0
Requires-Dist: click>=8.1
Requires-Dist: fastapi>=0.111
Requires-Dist: jinja2>=3.1
Requires-Dist: pydantic>=2.0
Requires-Dist: redis>=5.0
Requires-Dist: uvicorn[standard]>=0.30
Provides-Extra: all
Requires-Dist: aiomysql>=0.2; extra == 'all'
Requires-Dist: asyncpg>=0.29; extra == 'all'
Requires-Dist: croniter>=2.0; extra == 'all'
Requires-Dist: prometheus-client>=0.20; extra == 'all'
Provides-Extra: cron
Requires-Dist: croniter>=2.0; extra == 'cron'
Provides-Extra: dev
Requires-Dist: asyncpg>=0.29; extra == 'dev'
Requires-Dist: croniter>=2.0; extra == 'dev'
Requires-Dist: fakeredis>=2.23; extra == 'dev'
Requires-Dist: httpx>=0.27; extra == 'dev'
Requires-Dist: pre-commit>=3.7; extra == 'dev'
Requires-Dist: prometheus-client>=0.20; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
Requires-Dist: pytest-cov>=5.0; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Provides-Extra: docs
Requires-Dist: mkdocs-material>=9.5; extra == 'docs'
Requires-Dist: mkdocs>=1.6; extra == 'docs'
Requires-Dist: pymdown-extensions>=10.0; extra == 'docs'
Provides-Extra: mysql
Requires-Dist: aiomysql>=0.2; extra == 'mysql'
Provides-Extra: postgres
Requires-Dist: asyncpg>=0.29; extra == 'postgres'
Provides-Extra: prometheus
Requires-Dist: prometheus-client>=0.20; extra == 'prometheus'
Description-Content-Type: text/markdown

# aioq

Async job queue for Python with Redis/PostgreSQL backends and a built-in real-time dashboard.

**[Documentation](https://ykus4.github.io/aioq/)** · [PyPI](https://pypi.org/project/aioq/)

## Install

```bash
pip install aioq           # Redis
pip install "aioq[all]"    # Redis + PostgreSQL + cron
```

## Quick start

```python
from aioq import Aarq
from aioq.backends import RedisBroker

app = Aarq(broker=RedisBroker())

@app.task(queue="default", retries=3)
async def send_email(ctx, to: str, subject: str) -> dict:
    ...
```

```bash
aioq worker tasks:app       # run a worker
aioq dashboard tasks:app    # open the dashboard at :8080
```

See the **[docs](https://ykus4.github.io/aioq/)** for full usage, backend configuration, and API reference.

## License

MIT
