A fully asynchronous Rust client library for interacting with the Confluent Schema Registry.
rust-schema-registry-client
provides a Schema Registry client, along with serdes (serializers/deserializers) for
Avro, Protobuf, and JSON Schema.
- 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.
AvroSerializer
andAvroDeserializer
- serdes that useapache-avro
ProtobufSerializer
andProtobufDeserializer
- serdes that useprost
andprost-reflect
JsonSerializer
andJsonDeserializer
- serdes that usejsonschema
Add this to your Cargo.toml
:
[dependencies]
schema-registry-client = { version = "0.3.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.3.1", features = ["rules-encryption-awskms"] }
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.