@busieinc/confluent-schema-registry
v2.1.3
Published
A lightweight client to interface with the Confluent Schema Registry
Maintainers
Readme
Confluent Schema Registry Client
What is this repository for?
This repository hosts a lightweight client for Confluent Schema Registry.
Usage
// 1. Initialize the schema registry client with a host string and optional auth object
import { SchemaRegistry } from '@busieinc/confluent-schema-registry';
const auth = {
username: 'readme',
password: 'keep-it-secret--keep-it-safe'
};
const host = 'http://schema-registry:8081';
const sr = new SchemaRegistry({ host, auth });
// 2. register a new schema from a file
const references = [{ name: 'ref1', subject: 'ref1Subject', version: 123 }];
const filepath = './path/to/schema';
const subject = 'subject';
sr.registerFromFile(filepath, subject, references);
// 3. encode with the latest version of a schema for a particular subject
const message = { foo: 'bar' };
const encoded = await sr.encodeWithLatestSchema(message);
// 4. encode with a specific schema
const id = 123;
const subject = 'sub';
const version = 1;
const schema = await sr.getSchema(subject, version);
const encoded = sr.encode(id, schema, { foo: 'bar' }); // per TODO's, this will be refactored to only need ID and payload.
// 5. decode a message
let buf: Buffer;
const decoded = await sr.decode(buf);TODO
- caching
- refactor encoding for efficient request & cache usage
- Custom & exported errors for more intuitive client usage/error handling
