# @endo/captp 中文文档

规范地址：https://npmcn.com/package/%40endo/captp/

版本：4\.5\.1
npm 元数据更新时间：2026-05-28T20:47:47.316Z
中文译文更新时间：2026-11-13T16:47:36.130Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40endo/captp
原文对照：https://npmcn.com/package/%40endo/captp/?lang=original
项目主页：https://github.com/endojs/endo#readme
源码仓库：https://github.com/endojs/endo

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：71.9 kB，12 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- 运行依赖：7 个
- 首次发布：2022-01-23T00:48:00.652Z
- 最新版本发布：2026-05-27T18:56:03.774Z
- 近 30 天下载量：26199（2026-10-14 至 2026-11-12，npm 官方下载统计）
- 已发布版本数：52（近 12 个月 2 个）

## 中文简介

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

## 安装

```sh
npm install @endo/captp
```

也可以使用：`pnpm add @endo/captp`、`yarn add @endo/captp`、`bun add @endo/captp`

## README

# `@endo/captp`

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

## 使用量

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

```js
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 是什么？

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

### 如何安装 @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 和提交记录判断。

