- Python versions 3.7 and earlier are no longer supported because Kafkit is adopting the `annotations` import from `__future__` and native support for `importlib.metadata`.
Kafkit is explicitly tested with Python 3.8, 3.9, and 3.10.
- We've added a `kafkit.ssl` module to help connect to Kafka brokers over TLS.
The associated documentation includes a tutorial for working with the SSL certificates generated in a Kafka cluster managed by [Strimzi](https://strimzi.io).
- The brand-new `kafkit.registry.manager.RecordNameSchemaManager` provides a streamlined workflow for serializing Avro messages using Avro schemas that are maintained in your app's codebase.
The manager handles schema registration for you.
To serialize a message, you simply need to provide the data and the name of the schema.
- A new `kafkit.registry.sansio.CompatibilityType` Enum helps you write use valid Schema Registry compatibility types.
- We've significantly improved Kafkit's packaging and infrastructure:
- Migrate packaging metadata from `setup.py` to `pyproject.toml` (Kafkit continues to be a setuptools-based project).
- Tox now runs tasks like tests, in conjunction with the existing Pytest set up.
- Pre-commit hooks lint and format the code base.
- Code style is now handled by Black (and in the documentation with blacken-docs).
- **Full support for type annotations!** `tox -e typing` validates Kafkit's type annotations with Mypy.
- We've migrated from Travis CI to GitHub Actions.
- The documentation now includes a development guide.