Kafkit helps you write Kafka producers and consumers in Python with asyncio:

  • Kafkit provides a client for the Confluent Schema Registry’s HTTP API. The RegistryApi client includes both high-level methods for managing subjects and schemas in a Registry, and direct low-level access to HTTP methods (GET, POST, PUT, PATCH, and DELETE). The high-level methods use caching so you can use the client as an integral part of your application’s schema management. The client is implemented for both aiohttp and httpx, but since the base class is designed with a sans IO architecture, a Registry client can be implemented with any asyncio HTTP library.

  • Kafkit provides Avro message serializers and deserializers that integrate with the Confluent Schema Registry: Deserializer, Serializer, and PolySerializer.

  • The RecordNameSchemaManager is a streamlined tool for serializing messages using the schemas maintained by your app, while also integrating with the Confluent Schema Registry.

  • The kafkit.ssl module helps you connect to SSL-secured Kafka brokers.


Kafkit can be installed with different HTTP clients for convenience

pip install kafkit[httpx]
pip install kafkit[aiohttp]
pip install kafkit

Kafkit is also available on Conda-Forge at conda-forge/kafkit-feedstock.

Project information#

Kafkit is developed on GitHub at lsst-sqre/kafkit.