schema-registry-client

Crates.ioschema-registry-client
lib.rsschema-registry-client
version0.4.1
created_at2025-04-16 03:38:43.021758+00
updated_at2025-08-23 23:27:37.801906+00
descriptionSerialize/deserialize data to/from Kafka using the Confluent Schema Registry
homepagehttps://github.com/rayokota/rust-schema-registry-client
repositoryhttps://github.com/rayokota/rust-schema-registry-client
max_upload_size
id1635770
size670,602
Robert Yokota (rayokota)

documentation

README

rust-schema-registry-client

crates.io docs.rs Build Status license

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.

Commit count: 52

cargo fmt