finds.dev← search

// the find

celery/kombu

★ 3,120 · Python · BSD-3-Clause · updated Jun 2026

Messaging library for Python.

Kombu is the messaging abstraction layer that Celery is built on, exposing AMQP concepts (exchanges, queues, routing keys) with pluggable transports behind a consistent API. If you're using Celery, you're already using Kombu. If you want Celery-style messaging without Celery's task machinery, this is the library.

The transport abstraction is genuinely well-designed — you write against one API and swap between RabbitMQ, Redis, SQS, or even in-memory (useful for tests) without changing application code. The in-memory transport for unit testing is a real time-saver; no broker required in CI. Connection retry and failover handling is built in via the `ensure` mechanism, which handles transient broker failures without requiring you to write retry loops yourself. The transport comparison table in the README is honest about capability gaps (e.g., SQS fanout requiring SNS, Redis lacking TTL) rather than glossing over them.

The async story is fragmented — there's a `kombu.asynchronous` module with a custom event loop and curl-based HTTP, but it predates asyncio and doesn't integrate with it cleanly. If you're on an async Python stack, you'll hit friction fast. Several transports (ZooKeeper, Pyro, SLMQ, MongoDB) look maintained in name only — sparse test coverage and no real-world adoption signals. The virtual transport model emulates AMQP semantics on non-AMQP brokers, which means you get exchange/queue declarations stored only in memory per-client; any client restart loses the topology, and fanout requires all consumers to be running at declaration time.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →