@endo/captp

中文文档
4.5.1发布于 2026/05/28Apache-2.0ES Module近 30 天下载 2.6万

分布式对象的容量转移协议

中文使用文档
文档目录3 节
  1. 使用量
  2. 循环
  3. 陷阱夹

@endo/captp

一个最低限度的 CAPTP 执行 利用 Agoric 的已出版模块.

使用量

注: myconn 下面不是 CAPTP 库的一部分, 它代表连接 您创建的位置对象 makeCapTP 要求双方 连接,在函数中传出 JSON 可连接对象,然后返回 (单位:千美元) dispatch 函数可接收连接中解码的 JSON 对象.

import { E, makeCapTP } from '@endo/captp';

// Create a message dispatcher and bootstrap.
// Messages on myconn are exchanged with JSON-able objects.
const { dispatch, getBootstrap, abort } = makeCapTP('myid', myconn.send, myBootstrap);
myconn.onReceive = obj => dispatch(obj);

// Get the remote's bootstrap object and call a remote method.
E(getBootstrap()).method(args).then(res => console.log('got res', res));

// Tear down the CapTP connection if it fails (e.g. connection is closed).
abort(Error('Connection aborted by user.'));

循环

这个 makeLoopback() 函数在“ 相近” 和“ 相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相 对象。 这对在同一地址内测试和隔离有用 空间.

陷阱夹

除了正常的CapTP设施外,这个图书馆还具有以下概念: "Trap Caps",它使"客人"的终点能够称为"宿主"对象(它可能) 在方便的时候,你应答一个应答,但宾客是同步的 块直到它收到解答.

这是一个专门和先进的使用案例,不是针对相互怀疑的CapTP 派对,但为了明确的"客人"/"主机"关系,如用户-空间 代码和同步设备.

  1. 供应 trapHost 财务报告和审定财务报表 trapGuest 议定书的履行情况 一个基于 SharedArrayBuffers 内 src/atomics.js)给主持人和来宾 makeCapTP 打电话.
  2. 在主机一侧, 使用返回的 makeTrapHandler(target) 标记目标 作为同步驱动.
  3. 在客人那边,用回放 Trap(target) 代理制作人喜欢 E(target),但它会返回同步结果. Trap 将扔出一个 错误,如果 target 被主机标记为特拉普汉德勒.

来了解 trapHost 财务报告和审定财务报表 trapGuest 关联,考虑 trapHost 作为 合成器的制造者,不归还任何有用的价值。 这些具体 执行器用来驱动序列化数据的传输返回到来宾.

trapGuest 接收参数来描述具体的陷阱请求,包括 startTrap() 将数据发送给主机,以进行实际工作 夹子。 返回( 同步) 从 startTrap() 驱动同步 主持人直到将陷阱结果完全转移给客人为止 客人解围了.

环背执行为 TrapCaps 提供部分支持, 除了它 不能解开承诺。 循环回击陷阱手必须同步返回,或者 将丢弃例外.

版本与发布记录

@endo/captp 共发布 52 个版本,首次发布于 2022/01/23;过去 12 个月发布了 2 个版本。

版本发布日期距今
4.5.1latest2026/05/285 个月前
4.5.02026/02/278 个月前
4.4.82025/07/121.3 年前
4.4.72025/06/181.4 年前
4.4.62025/06/031.4 年前
4.4.52025/03/251.6 年前

关于 @endo/captp 的常见问题

@endo/captp 是什么?

分布式对象的容量转移协议

如何安装 @endo/captp?

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

@endo/captp 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/endo__captp 是否存在。

@endo/captp 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@endo/captp 可以商用吗?

@endo/captp 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@endo/captp 的下载量有多少?

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

@endo/captp 还在维护吗?

最新版本 4.5.1 发布于 2026/05/28(5 个月前);至今共发布 52 个版本,其中过去 12 个月发布了 2 个;首次发布于 2022/01/23。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。