@confluentinc/schemaregistry

中文文档
1.11.0发布于 2026/10/08MITTypeScriptCommonJS近 30 天下载 35.3万

Confluent Schema 注册的节点客户端

中文使用文档
文档目录4 节
  1. 安装
  2. 开始
  3. 特征和限制
  4. 捐款

用于 Schema 注册的 JavaScript 客户端TM 电话

Conluent 的 JavaScript 客户端 Schema 书记官处 支持Avro,Protobuf和JSON Schema,并旨在与 Confluent 用于 Apache Kafka 的 JavaScript 客户端。 。 。 . 目的是按照Schema注册公司的其他客户提供高性能、可靠和易于使用的JavaScript客户端 就像我们 走开, (中文(简体) ), . NET 网络, (中文(简体) ), 财务报告和审定财务报表 爪哇语 客户.

安装

npm install @confluentinc/schemaregistry

开始

下面是使用Avro系列化的简单例子,与Schema注册客户端和KafkaJS客户端.

const { Kafka } = require('@confluentinc/kafka-javascript').KafkaJS;
const { SchemaRegistryClient, SerdeType, AvroSerializer, AvroDeserializer} = require('@confluentinc/schemaregistry');

const registry = new SchemaRegistryClient({ baseURLs: ['http://localhost:8081'] })
const kafka = new Kafka({
  kafkaJS: {
    brokers: ['localhost:9092']
  }
});

let consumer = kafka.consumer({
  kafkaJS: {
    groupId: "test-group",
    fromBeginning: true,
  },
});
let producer = kafka.producer();

const schema = {
  type: 'record',
  namespace: 'examples',
  name: 'RandomTest',
  fields: [
    { name: 'fullName', type: 'string' }
  ],
};

const topicName = 'test-topic';
const subjectName = topicName + '-value';

const run = async () => {
  // Register schema
  const id = await registry.register(
    subjectName,
    {
      schemaType: 'AVRO',
      schema: JSON.stringify(schema)
    }
  )

  // Create an Avro serializer
  const ser = new AvroSerializer(registry, SerdeType.VALUE, { useLatestVersion: true });

  // Produce a message with the schema
  await producer.connect()
  const outgoingMessage = {
    key: 'key',
    value: await ser.serialize(topicName, { fullName: 'John Doe' }),
  }
  await producer.send({
    topic: topicName,
    messages: [outgoingMessage]
  });
  console.log("Producer sent its message.")
  await producer.disconnect();
  producer = null;

  // Create an Avro deserializer
  const deser = new AvroDeserializer(registry, SerdeType.VALUE, {});

  await consumer.connect()
  await consumer.subscribe({ topic: topicName })

  let messageRcvd = false;
  await consumer.run({
    eachMessage: async ({ message }) => {
      const decodedMessage = {
        ...message,
        value: await deser.deserialize(topicName, message.value)
      };
      console.log("Consumer received message.\nBefore decoding: " + JSON.stringify(message) + "\nAfter decoding: " + JSON.stringify(decodedMessage));
      messageRcvd = true;
    },
  });

  // Wait around until we get a message, and then disconnect.
  while (!messageRcvd) {
    await new Promise((resolve) => setTimeout(resolve, 100));
  }

  await consumer.disconnect();
  consumer = null;
}

run().catch (async e => {
  console.error(e);
  consumer && await consumer.disconnect();
  producer && await producer.disconnect();
  process.exit(1);
})

特征和限制

  • Avro、Protobuf和JSON Schema的支持
  • 支持 CSFLE( 连续的字段加密)
  • 支持数据质量规则
  • 支持为Avro和JSON Schema制定移民规则
  • 对 OAuth 的支持

捐款

错误报告和反馈以"Github Issues"的形式获得赞赏. 关于捐款准则,请参见: 捐款额

版本与发布记录

@confluentinc/schemaregistry 共发布 55 个版本,首次发布于 2024/09/26;过去 12 个月发布了 20 个版本。

版本发布日期距今
1.11.0latest2026/10/081 个月前
1.11.0-rc1rc2026/10/071 个月前
1.10.12026/09/102 个月前
1.10.1-rc12026/09/102 个月前
1.10.1-alpha.0alpha2026/08/272 个月前
1.10.02026/07/014 个月前

关于 @confluentinc/schemaregistry 的常见问题

@confluentinc/schemaregistry 是什么?

Confluent Schema 注册的节点客户端

如何安装 @confluentinc/schemaregistry?

在项目目录运行 npm install @confluentinc/schemaregistry,或使用 pnpm add / yarn add / bun add。

@confluentinc/schemaregistry 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@confluentinc/schemaregistry 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@confluentinc/schemaregistry 可以商用吗?

@confluentinc/schemaregistry 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@confluentinc/schemaregistry 的下载量有多少?

根据 npm 官方下载统计,@confluentinc/schemaregistry 在 2026/10/11 – 2026/11/09 这 30 天内被下载 352,717 次,日均约 11,757 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@confluentinc/schemaregistry 还在维护吗?

最新版本 1.11.0 发布于 2026/10/08(1 个月前);至今共发布 55 个版本,其中过去 12 个月发布了 20 个;首次发布于 2024/09/26。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。