← Back to the 2026 landscape
Compare

fastworker vs Celery: a brokerless Python task queue (no Redis, no RabbitMQ)

fastworker is a Python 3.12+ task queue with a built-in control plane — no external broker required. Priority queues, distributed workers, FastAPI integration, OpenTelemetry.

Install
$ pip install fastworker
TL;DR

fastworker is a Rust-backed drop-in for Celery. Same API, faster hot paths. Install: pip install fastworker. No broker required. Workers talk to a built-in control plane over loopback or mTLS.

fastworker vs Celery: the facts

fastworker

No broker required. Workers talk to a built-in control plane over loopback or mTLS.

Celery

Requires Redis, RabbitMQ, SQS, or another broker.

fastworker

1K-10K tasks/min on a single node, no extra services.

Celery

Throughput scales with the broker; default Redis is fast but you have to operate it.

fastworker

Priority queues (critical/high/normal/low) out of the box.

Celery

Priority via routing keys; no built-in priority semantics.

fastworker

Auto worker discovery on the same network.

Celery

Manual worker registration.

fastworker

Task result caching built in.

Celery

Celery result backends (Redis, DB) require separate configuration.

fastworker

FastAPI integration via a single dependency.

Celery

First-class FastAPI support is community-maintained.

fastworker

OpenTelemetry tracing built in.

Celery

Requires celery-signals glue.

fastworker

Built-in web dashboard.

Celery

Flower is a separate project.

fastworker

MIT licensed.

Celery

BSD-licensed.

Benchmarks

Reproduction instructions in the project README. Numbers measured on AMD Ryzen 9 7950X, 64GB DDR5, NVMe SSD, Python 3.12.

Metric fastworker Celery
Tasks/min (single node, no broker) 1K-10K Broker-bound
External services to operate 0 1 (broker)

When to use fastworker

  • You want to ship background jobs in Python without standing up Redis or RabbitMQ.
  • You have moderate task volume (1K-10K/min) on a single node.
  • You want priority queues, dashboards, and tracing out of the box.

When NOT to use fastworker

  • You already operate Redis and want Celery's 20-year ecosystem of plugins.
  • You need to scale to 100K+ tasks/min across multiple brokers — Celery + Redis is more battle-tested there.

Frequently asked questions

How does fastworker persist tasks without a broker?

fastworker embeds a SQLite-backed control plane on the master process. Workers register via mDNS or static config; the master hands out work over loopback or mTLS. Tasks are persisted in the master's SQLite file.

Can I run fastworker across multiple nodes?

Yes — the master can run on one node and workers on others, with mTLS for auth. For multi-master, see the federated mode in the docs.

Is fastworker a drop-in for Celery?

No — the task decorator API is similar but the configuration is different. Migration is a half-day of work for a typical Celery app.

How does fastworker compare to Dramatiq / RQ?

Dramatiq and RQ both require Redis. fastworker is the brokerless option. The trade-off: you give up the broker's existing operational maturity for a simpler deployment.