apicurio-serdes
Python serialization library for Apicurio Registry.
Provides Avro serializers that fetch and cache schemas from an Apicurio Registry v3 instance, with support for both sync and async usage. Two wire formats are supported: the Confluent-compatible payload framing and Apicurio's Kafka-headers mode.
Feature status
| Feature | Status |
|---|---|
Sync registry client (ApicurioRegistryClient) |
Shipped |
Async registry client (AsyncApicurioRegistryClient) |
Shipped |
Avro serializer (AvroSerializer) |
Shipped |
Avro deserializer (AvroDeserializer) |
Shipped |
| Confluent wire format (magic byte + globalId) | Shipped |
| Kafka-headers wire format | Shipped |
Installation
pip install apicurio-serdes
Quick start
Sync client
from apicurio_serdes import ApicurioRegistryClient
client = ApicurioRegistryClient(
url="http://localhost:8080/apis/registry/v3",
group_id="com.example.schemas",
)
cached = client.get_schema("UserEvent")
# cached.schema — parsed Avro schema dict (fastavro-ready)
# cached.global_id — Apicurio globalId
# cached.content_id — Apicurio contentId
Async client
from apicurio_serdes import AsyncApicurioRegistryClient
client = AsyncApicurioRegistryClient(
url="http://localhost:8080/apis/registry/v3",
group_id="com.example.schemas",
)
cached = await client.get_schema("UserEvent")
Wire formats
from apicurio_serdes import WireFormat
# Magic byte (0x00) + 4-byte globalId prefix — Confluent-compatible
WireFormat.CONFLUENT_PAYLOAD
# Raw Avro bytes; schema ID carried in a Kafka message header
WireFormat.KAFKA_HEADERS
Contributing
See CONTRIBUTING.md for dev setup, coding standards, and how to submit a pull request.
License
Metadata
Release files for apicurio-serdes 0.5.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| apicurio_serdes-0.5.0.tar.gz | 412.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| apicurio_serdes-0.5.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 443.4 kB
Release files / apicurio_serdes-0.5.0.tar.gz
| Download URL | apicurio_serdes-0.5.0.tar.gz |
|---|---|
| Size | 412.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b2d6dcb33320cb833fd8b325d3df9640521b693584ee420303f9783d2e804e4b
|
|
BLAKE2b-256 checksum How to use checksums |
5ddc970e3218159b30a95f2b28e9f79beb90d12caaed3a24ade7061b8a932853
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 27, 2026.
Transparency logRelease files / apicurio_serdes-0.5.0-py3-none-any.whl
| Download URL | apicurio_serdes-0.5.0-py3-none-any.whl |
|---|---|
| Size | 31.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2e1a7644e0e047fec04945f6050bfe841ece0638d6393afd99723e82be349352
|
|
BLAKE2b-256 checksum How to use checksums |
f973ce62d388c7aec6245ed630d3e4a5617d01faade0394dcbe27f6f16b1df74
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 27, 2026.
Transparency log