3 unstable releases
new 0.2.1 | Apr 17, 2025 |
---|---|
0.2.0 | Apr 16, 2025 |
0.1.0 | Apr 16, 2025 |
#602 in Encoding
136 downloads per month
385KB
10K
SLoC
rust-schema-registry-client
A fully asynchronous Rust client library for interacting with the Confluent Schema Registry.
The library
rust-schema-registry-client
provides a Schema Registry client, along with serdes (serializers/deserializers) for
Avro, Protobuf, and JSON Schema.
Features
- Support for Avro, Protobuf, and JSON Schema formats
- Data quality rules using Google Common Expression Language (CEL) expressions
- Schema migration rules using JSONata expressions
- Client-side field-level encryption (CSFLE) rules using AWS KMS, Azure Key Vault, Google Cloud KMS, or HashiCorp Vault
This library can be used with rust-rdkafka but does not depend on it.
Serdes
AvroSerializer
andAvroDeserializer
- serdes that useapache-avro
ProtobufSerializer
andProtobufDeserializer
- serdes that useprost
andprost-reflect
JsonSerializer
andJsonDeserializer
- serdes that usejsonschema
Installation
Add this to your Cargo.toml
:
[dependencies]
schema-registry-client = { version = "0.2.1" }
The following features are available:
rules-cel
- enables data quality rules using CELrules-encryption-awskms
- enables CSFLE rules using AWS KMSrules-encryption-azurekms
- enables CSFLE rules using Azure Key Vaultrules-encryption-gcpkms
- enables CSFLE rules using Google Cloud KMSrules-encryption-hcvault
- enables CSFLE rules using HashiCorp Vaultrules-encryption-localkms
- enables CSFLE rules using a local KMS (for testing)rules-jsonata
- enables schema migration rules using JSONata
For example, to use CSFLE with the AWS KMS, add this to your Cargo.toml
:
[dependencies]
schema-registry-client = { version = "0.2.1", features = ["rules", "rules-encryption-awskms"] }
Examples
You can find examples in the examples
folder. To run them:
cargo run --example <example_name> -- <example_args>
Further information can be found in this blog.
Dependencies
~24–45MB
~762K SLoC