arq

Fast job queuing and RPC in Python built on asyncio and Redis

Library
PyPI
v0.28.0
3,014 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
55 /100 Fair
Development Activity 8
Maintenance 44
Community 68
Maturity 60
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
73 /100 Good
Architecture 75
Code Quality 74
Innovation 60
Learning Curve 82

arq is an async job queue for Python, built on asyncio and Redis, that lets you enqueue functions to run in a separate worker process (or many, for high throughput) rather than blocking the calling process. It supports cron-like scheduled jobs, job retries, timeouts, and result storage, all using Redis as the sole broker without needing a separate message broker like RabbitMQ.

Inspired by (and API-compatible in spirit with) Celery but designed specifically for asyncio, arq is lightweight and easy to deploy for teams already running Redis, offering a simple decorator-based API for defining and enqueuing background tasks.

What You Get

  • An asyncio-native worker (arq.worker.Worker) that pulls and executes jobs from Redis
  • A simple async def function + decorator pattern for defining background tasks
  • Cron-style scheduled job support via arq.cron
  • Automatic job retries, timeouts, and result storage in Redis
  • A CLI (arq) for running worker processes against a settings module

Common Use Cases

  • Offloading slow operations (emails, image processing, webhooks) from a web request to a background worker
  • Running scheduled/cron-style jobs (nightly reports, periodic cleanup) from Python asyncio apps
  • Adding a lightweight task queue to a FastAPI or other asyncio-based service without introducing RabbitMQ
  • Fan-out job processing across multiple worker processes reading from the same Redis queue
  • Building simple RPC-style call patterns where a function call is dispatched to and executed by a separate process

Under The Hood

Architecture - arq’s core is compact: connections.py manages the Redis connection pool, worker.py implements the polling/dispatch loop that pulls jobs and executes registered async functions, jobs.py models job state/results, and cron.py layers scheduled-job support on top of the same worker loop, with cli.py providing the arq command to launch a worker against a settings module. Tech Stack - Built directly on redis-py’s asyncio client with no additional broker dependency, targeting Python 3.9+ and using hatchling as its build backend. Code Quality - The tests/ directory (8 files) covers worker execution, cron scheduling, connection handling, and CLI behavior with CI-enforced coverage tracked via Codecov, though the project is explicitly marked ‘in maintenance only mode’ by its maintainers, meaning new feature work has slowed. API Design - Defining a job is a plain async def function registered in a functions list, and enqueuing is a single await pool.enqueue_job(...) call, which keeps the API surface small and easy to pick up for anyone already comfortable with asyncio, at the cost of fewer built-in features (routing, chaining, flower-style monitoring) than heavier frameworks like Celery.

Used by 6 apps in this directory

Python
59%
Other

Arkon

AI Assistants · Knowledge Management · Mcp

1,463

Self-hosted enterprise AI knowledge hub that compiles internal docs into a scoped, reviewable wiki and serves it to Claude and other LLMs through an MCP server.

View details
46
Repo Health
74
Technical
70
Dependency
Built with
Python 59%
TypeScript 41%
Updated 4 months ago
Python
44%
MIT

/dev/push

Developer Tools · Devops

4,757

Self-hosted, open-source Vercel alternative that deploys Python, Node.js, PHP, and any Docker-compatible app from a Git push, with zero-downtime rollouts and real-time logs.

View details
44
Repo Health
68
Technical
73
Dependency
Built with
Python 44%
HTML 31%
CSS 17%
Updated 7 months ago
TypeScript
51%
AGPL 3.0

Glean

Bookmarks Archiving · Knowledge Management

868

Self-hosted RSS reader and personal knowledge management tool with MCP server integration for AI assistant connectivity.

View details
73
Repo Health
75
Technical
70
Dependency
Built with
TypeScript 51%
Python 45%
Updated 1 weeks ago
Python
64%
Other

Keep

Automation · Devops · Monitoring

12,359

The open-source AIOps and alert management platform that unifies 130+ monitoring tools into a single pane of glass with AI-powered correlation, deduplication, and workflow automation.

View details
89
Repo Health
79
Technical
66
Dependency
Built with
Python 64%
TypeScript 36%
Updated 1 weeks ago
Python
66%
Other

Morphik

AI Development · Databases · Search

3,716

Morphik is an AI-native ingestion and retrieval engine that lets developers store, search, and reason over visually rich documents — scanned PDFs, manuals, slides, and video — without duct-taping together OCR, an embedding model, and a vector database.

View details
60
Repo Health
71
Technical
67
Dependency
Built with
Python 66%
TypeScript 23%
Updated 1 weeks ago
Python
86%
Apache 2.0

PrivateGPT

AI Development

57,548

The open-source API layer that turns local LLMs into production private AI applications with full Claude API compatibility

View details
87
Repo Health
83
Technical
69
Dependency
Built with
Python 86%
Updated 1 weeks ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers