Expand description
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
AvroSerializerandAvroDeserializer- serdes that useapache-avroProtobufSerializerandProtobufDeserializer- serdes that useprostandprost-reflectJsonSerializerandJsonDeserializer- serdes that usejsonschema
§Installation
Add this to your Cargo.toml:
[dependencies]
schema-registry-client = { version = "0.4.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.4.0", features = ["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.