// the find
aio-libs/aiokafka
asyncio client for kafka
aiokafka is a pure-asyncio Kafka client for Python, built on top of the kafka-python protocol layer. It covers the full client surface: producer, consumer, consumer groups, transactions, and basic admin. If you're running an async Python service and need to talk to Kafka without blocking the event loop, this is the established choice.
The Cython-accelerated record serialization path (_crecords/) is a genuine performance win — the pure-Python fallback exists, but the C extension handles the hot path. Transaction support is implemented properly, including the transaction manager state machine and transactional consumer semantics, not just a thin wrapper. The test suite requires a real Kafka broker via Docker, which means the integration coverage is honest. The aio-libs organization maintains it, so it follows the same conventions as aiohttp and aiopg — familiar if you're already in that ecosystem.
The star count (1.4k) understates how widely it's used, but also understates how thinly it's maintained — the commit history shows long quiet stretches. It implements its own Kafka wire protocol in Python rather than wrapping librdkafka, which means every new Kafka protocol version requires a manual port; KIP support lags the JVM client by months or years. The admin client is functional but sparse — you can create topics and partitions, but anything operational (ACLs, quotas, consumer group management) sends you back to the CLI. No schema registry integration, so Avro/Protobuf consumers have to wire that up themselves.