Crate schema_registry_client

Crate schema_registry_client 

Source
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

§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 CEL
  • rules-encryption-awskms - enables CSFLE rules using AWS KMS
  • rules-encryption-azurekms - enables CSFLE rules using Azure Key Vault
  • rules-encryption-gcpkms - enables CSFLE rules using Google Cloud KMS
  • rules-encryption-hcvault - enables CSFLE rules using HashiCorp Vault
  • rules-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.

Modules§

rest
rules
serdes