# @appport/protocol 中文文档

规范地址：https://npmcn.com/package/%40appport/protocol/

版本：1\.4\.1
npm 元数据更新时间：2026-11-05T17:21:44.300Z
中文译文更新时间：2026-11-06T12:22:15.298Z
软件包许可：Apache-2\.0

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

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

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

- 包体积（解压后）：402 kB，87 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=20
- 运行依赖：0 个
- 首次发布：2026-09-21T13:19:46.957Z
- 最新版本发布：2026-11-05T17:21:43.819Z
- 近 30 天下载量：3364（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：10（近 12 个月 10 个）

## 中文简介

AppPort有线协议类型,信封,出错代码和明细合同.

## 安装

```sh
npm install @appport/protocol
```

也可以使用：`pnpm add @appport/protocol`、`yarn add @appport/protocol`、`bun add @appport/protocol`

## README

# @ appport/ protocol

AppPort电线合同:信封类型、错误代码、命名规则、显示 形状、结构验证和相容性分析.

这个包裹是纯的。 它没有运行时间的依赖性,对它一无所知 运输工具、服务器或客户端——这是能够安全地依赖 浏览器捆绑,电子预装脚本或CLI.

```ts
import { createRequest, parseClientEnvelope, PROTOCOL_ID } from "@appport/protocol";

const request = createRequest({
  requestId: "req_01J...",
  capability: { name: "documents.save", version: 1 },
  input: { documentId: "doc_1", content: "hello" }
});

parseClientEnvelope(request); // throws AppPortError on a malformed envelope
```

## 这是什么

| 模块 | 目录 |
| --- | --- |
| `version` | `appport/1`,符合水平 |
| `envelopes` | 请求、响应、事件、订阅、流信封和卫士 |
| `validate` | 协议级结构验证、解码和编码 |
| `errors` | 标准错误代码和 `AppPortError` |
| `names` | 能力、事件、许可和应用程序代号语法 |
| `ids` | 基于 ULID 的标识工具 |
| `manifest` | 说明、发现和运输说明类型 |
| `jsonschema` | 在清单中公布的 JSON Schema 子集 |
| `session` | `Principal` 财务报告和审定财务报表 `Session` |
| `operations` | 长期运行记录 |
| `blob` | 二进制引用 |
| `compatibility` | (一) 破解与未破解的表面分解; `compareSchemas` 为了一副图案 |
| `fulfillment` | 警犬合同(`isCanonicalContract`),实现债权(`claimFor`, (中文(简体) ), `claimsFor`, (中文(简体) ), `lintFulfillment`及其评价`evaluateFulfillment`(中文(简体) )`spec/fulfillment-1.md`页:1 |
| `integration` | 综合元数据 `lintIntegration`; 依赖性,包括犬类目标(`CanonicalDependencyTarget`, (中文(简体) ), `isCanonicalDependencyTarget`,自1.2.0起) |

核对姓名,而不仅仅是输入: `electron.documents.save` 财务报告和审定财务报表 `ipc.saveDocument` 被拒绝,因为编码 a 的能力名称 运输打破了协议的核心无常.

## 公开发现(1.1.0)

`buildPublicDescription`, (中文(简体) ), `validatePublicDescription`, (中文(简体) ), `capabilityDigest`, (中文(简体) ), `contractDigest`, (中文(简体) ), `PUBLIC_DESCRIPTION_PATH` 编辑 `appport.public-description/1` 计划( s)`spec/schemas/public-description.schema.json` 页:1 发布是申请 拥有者明确,失败的闭塞决定;描述是权威显示的指针和摘要,是不信任的数据. 发现不是授权,批准或出版商信任.

## 常见问题

### @appport/protocol 是什么？

AppPort有线协议类型,信封,出错代码和明细合同\.

### 如何安装 @appport/protocol？

在项目目录运行 npm install @appport/protocol，或使用 pnpm add / yarn add / bun add。

### @appport/protocol 支持 TypeScript 吗？

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

### @appport/protocol 支持 ESM 还是 CommonJS？

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

### @appport/protocol 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=20。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @appport/protocol 可以商用吗？

@appport/protocol 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @appport/protocol 的下载量有多少？

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

### @appport/protocol 还在维护吗？

最新版本 1\.4\.1 发布于 2026/11/06（2 天前）；至今共发布 10 个版本，其中过去 12 个月发布了 10 个；首次发布于 2026/09/21。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

