{"id":19693824,"url":"https://github.com/aiven-open/kio","last_synced_at":"2025-06-11T09:11:26.387Z","repository":{"id":192837933,"uuid":"590844097","full_name":"Aiven-Open/kio","owner":"Aiven-Open","description":"Python data types for the Apache Kafka® Protocol.","archived":false,"fork":false,"pushed_at":"2025-06-10T08:54:25.000Z","size":3833,"stargazers_count":22,"open_issues_count":6,"forks_count":5,"subscribers_count":11,"default_branch":"main","last_synced_at":"2025-06-10T09:40:58.433Z","etag":null,"topics":["binary-serialization","kafka","python"],"latest_commit_sha":null,"homepage":"https://aiven-open.github.io/kio/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Aiven-Open.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-01-19T10:51:08.000Z","updated_at":"2025-06-10T08:54:30.000Z","dependencies_parsed_at":"2023-12-13T15:26:51.152Z","dependency_job_id":"2acd6a3c-982b-4596-ac4b-004d652347c9","html_url":"https://github.com/Aiven-Open/kio","commit_stats":null,"previous_names":["aiven-open/kio"],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aiven-Open%2Fkio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aiven-Open%2Fkio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aiven-Open%2Fkio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aiven-Open%2Fkio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Aiven-Open","download_url":"https://codeload.github.com/Aiven-Open/kio/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aiven-Open%2Fkio/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259052999,"owners_count":22798407,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["binary-serialization","kafka","python"],"created_at":"2024-11-11T19:18:17.578Z","updated_at":"2025-06-11T09:11:26.365Z","avatar_url":"https://github.com/Aiven-Open.png","language":"Python","readme":"\u003ch1 align=center\u003ekio\u003c/h1\u003e\n\n\u003cp align=center\u003e\n    \u003ca href=https://github.com/aiven/kio/actions?query=workflow%3ACI+branch%3Amain\u003e\u003cimg src=https://github.com/aiven/kio/workflows/CI/badge.svg alt=\"CI Build Status\"\u003e\u003c/a\u003e\n    \u003ca href=https://codecov.io/gh/Aiven-Open/kio\u003e\u003cimg src=\"https://codecov.io/gh/Aiven-Open/kio/graph/badge.svg?token=ogJDikql10\" alt=\"Code coverage report\"\u003e\u003c/a\u003e\n    \u003cbr\u003e\n    \u003ca href=https://pypi.org/project/kio/\u003e\u003cimg src=https://img.shields.io/pypi/v/kio.svg?color=informational\u0026label=PyPI alt=\"PyPI Package\"\u003e\u003c/a\u003e\n    \u003ca href=https://pypi.org/project/kio/\u003e\u003cimg src=https://img.shields.io/pypi/pyversions/kio.svg?color=informational\u0026label=Python alt=\"Python versions\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=center\u003e\n    Python data types for the Apache Kafka® Protocol.\n\u003c/p\u003e\n\n\u003ch4 align=center\u003e\n    \u003ca href=https://aiven-open.github.io/kio/\u003eCheckout the complete documentation →\u003c/a\u003e\n\u003c/h4\u003e\n\n## Features\n\n- Exposes immutable dataclass entities for all protocol messages, generated from the\n  [same source][schema-source] as used internally in Apache Kafka®.\n- Message classes are simple light-weight data containers that do not inherit anything\n  or expose any methods other than a regular dataclass. Encoding and decoding is enabled\n  by making all the necessary details about Kafka encoding introspectable.\n- Widely compatible encoding and decoding of messages through the `IO[bytes]` interface.\n- Test suite with focus on roundtrip property tests using Hypothesis, including\n  compatibility testing against the internals of upstream Apache Kafka®.\n\n[schema-source]:\n  https://github.com/apache/kafka/tree/trunk/clients/src/main/resources/common/message\n\n## Installation\n\n```shell\n$ pip install --require-virtualenv kio\n```\n\n## Development\n\nInstall development requirements.\n\n```shell\n$ pip install --require-virtualenv -e .[all]\n```\n\nThe test suite contains integration tests that expects to be able to connect to an\nApache Kafka® instance running on `127.0.0.1:9092`. There is a Docker Compose file in\n`container/compose.yml` that you can use to conveniently start up an instance.\n\n```shell\n$ docker compose up -d kafka\n```\n\nRun tests.\n\n```shell\n$ python3 -X dev -m pytest --cov\n```\n\nSetup pre-commit to run on push.\n\n```shell\n$ pre-commit install -t pre-push\n```\n\n\u003e [!WARNING]\\\n\u003e Building the schema will delete the `src/kio/schema` directory and recreate it again, hence\n\u003e all of the files under this directory will be deleted. Make sure to not put unrelated files\n\u003e there and accidentally wipe out your own work.\n\nFetch, generate, and format schema.\n\n```shell\n$ make build-schema\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faiven-open%2Fkio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faiven-open%2Fkio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faiven-open%2Fkio/lists"}