@cratis/chronicle.contracts

中文文档
19.153.2发布于 2026/11/10MITTypeScriptESM + CJS构建来源已验证近 30 天下载 3.7万

TypeScript gRPC 客户端合同 Cratis Chronicle - 开源事件包数据库

中文使用文档
文档目录6 节
  1. 特征
  2. 安装
  3. 使用量
  4. 呼叫服务
  5. 类型安全
  6. 许可证

@cratis/chronicle. 合同

TypeScript gRPC Contracts for Chronicle 有完全类型的安全和IDE支持.

特征

  • 基于承诺的API: 现代同步/等待对所有无用的RPC呼叫的支持
  • 可同步流: 服务器流用 AsyncIterable 方便的迭代
  • 完整类型安全: 由原型定义生成的强型客户端和消息类型
  • 64位安全原子弹 int64编号 :uint64 数值表示为 bigint
  • 零收发码: 直接客户端方法调用,而不使用手动操作

安装

npm install @cratis/chronicle.contracts
# or
yarn add @cratis/chronicle.contracts

使用量

这个包只包含生成的合同: a *Definition 用于每个 Chronicle gRPC 服务和每个消息的 TypeScript 类型,由 t-原生 页:1 不错的grpc。它没有连接字符串解析、认证或重试处理。 ES模块导入和通用JS require() 使用匹配的运行时间和 TypeScript 声明.

做申请? 使用平面类型脚本客户端, @cratis/chronicle以这些合同为基础。 只有在您正在建立自己的客户端或工具时才能获取此软件包 .

呼叫服务

以下节选显示了一个呼叫的外形. 这不是一个完整的程序: 一个真实的 Crime 服务器在端口服务 TLS 35000 ——在开发中有一个自签名的证书——并且期望在每次通话时都有一个无记名符号,所以您提供频道的证书,并调用适合您的服务器的元数据.

import { createChannel, createClient, ChannelCredentials } from 'nice-grpc';
import { EventStoresDefinition } from '@cratis/chronicle.contracts';

const channel = createChannel('localhost:35000', ChannelCredentials.createSsl());
const eventStores = createClient(EventStoresDefinition, channel);

const response = await eventStores.allEventStores({});

每一个rpc在 .proto 文件成为其客户端上的骆驼拼接方法(AllEventStores 变成 allEventStores) (中文(简体) ). 无效呼叫返回 a Promise; 服务器流调回 AsyncIterable。 。 。 .

类型安全

每个服务客户端和消息都是从原始定义中输入的,包括: int64编号 :uint64 字段为 bigint。 。 。 .

许可证

麻省理工学院

版本与发布记录

@cratis/chronicle.contracts 共发布 604 个版本,首次发布于 2026/04/06;过去 12 个月发布了 604 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
19.153.2latest2026/11/10今天
19.153.12026/11/10今天
19.153.02026/11/10今天
19.152.22026/11/10今天
19.152.12026/11/10今天
19.152.02026/11/10今天

关于 @cratis/chronicle.contracts 的常见问题

@cratis/chronicle.contracts 是什么?

TypeScript gRPC 客户端合同 Cratis Chronicle - 开源事件包数据库

如何安装 @cratis/chronicle.contracts?

在项目目录运行 npm install @cratis/chronicle.contracts,或使用 pnpm add / yarn add / bun add。

@cratis/chronicle.contracts 支持 TypeScript 吗?

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

@cratis/chronicle.contracts 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@cratis/chronicle.contracts 可以商用吗?

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

@cratis/chronicle.contracts 的下载量有多少?

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

@cratis/chronicle.contracts 还在维护吗?

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