Skip to main content

Python data types for the Apache Kafka® Protocol.

Project description

kio

CI Build Status

Python data types for the Apache Kafka® Protocol.

Features

  • Exposes immutable dataclass entities for all protocol messages, generated from the same source as used internally in Apache Kafka®.
  • Message classes are simply light-weight data containers and does not inherit anything or expose any methods other than a vanilla dataclass. Encoding and decoding is enabled by making all the necessary details about Kafka encoding introspectable.
  • Supports encoding and decoding of messages through IO[bytes].
  • Test suite with focus on roundtrip property tests using Hypothesis.

Development

Install development requirements.

$ python3 -m pip install -e .[all]

The test suite contains integration tests that expects to be able to connect to an Apache Kafka® instance running on 127.0.0.1:9092. There is a Docker Compose file in container/compose.yml that you can use to conveniently start up an instance.

$ docker compose --file=container/compose.yml up -d

Run tests.

$ python3 -X dev -m pytest --cov

Setup pre-commit to run on push.

$ pre-commit install -t pre-push

Fetch, generate, and format schema.

$ make build-schema

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kio-0.0.0a0.tar.gz (105.5 kB view hashes)

Uploaded Source

Built Distribution

kio-0.0.0a0-py3-none-any.whl (603.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page