A Rust crate for encoding and decoding data compatible with the Confluent Schema Registry, supporting Avro, Protobuf, and JSON Schema.
schema_registry_converter is a Rust crate that converts bytes to structured data and back in a way compatible with the Confluent Schema Registry. It solves the problem of serializing and deserializing data in Kafka-based systems using Avro, Protobuf, or JSON Schema, ensuring seamless interoperability with Java clients and other services.
Rust developers building Kafka-based data pipelines or services that need to produce or consume messages encoded with the Confluent Schema Registry. It's also suitable for teams integrating Rust applications into existing Java/Kafka ecosystems.
Developers choose this library for its strict compatibility with the Confluent Schema Registry Java client, support for multiple serialization formats, and both async and blocking APIs. It reduces integration effort and ensures reliable data exchange in mixed-language environments.
A crate to convert bytes to something more useable and the other way around in a way Compatible with the Confluent Schema Registry. Supporting Avro, Protobuf, Json schema, and both async and blocking.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Handles Avro, Protobuf, and JSON Schema serialization, covering the major formats used in Kafka ecosystems, as evidenced by separate feature flags and examples for each.
Designed to be feature-complete with the Java Schema Registry client, ensuring reliable interoperability in mixed-language environments, which is a core philosophy stated in the README.
Offers both asynchronous and synchronous (blocking) APIs, allowing developers to choose based on their application architecture, with clear feature flag configurations.
Supports fetching, registering, and using schemas with references and custom subject strategies, mirroring the Confluent Schema Registry's functionality for seamless integration.
Missing support for advanced Confluent Schema Registry features like client-side encryption, with the README explicitly directing users to another crate for such needs.
Requires careful configuration of multiple feature flags (e.g., 'avro', 'proto_raw', 'blocking', 'easy'), which can lead to compilation errors and increased setup complexity.
The 'easy' variants introduce ARC overhead for convenience, and all usage involves network calls to the Schema Registry, adding latency compared to raw serialization.