# @ably/vcdiff-decoder 中文文档

规范地址：https://npmcn.com/package/%40ably/vcdiff-decoder/

版本：1\.0\.6
npm 元数据更新时间：2026-10-14T11:06:17.915Z
中文译文更新时间：2026-11-05T19:23:50.776Z
软件包许可：Apache-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40ably/vcdiff-decoder
原文对照：https://npmcn.com/package/%40ably/vcdiff-decoder/?lang=original
项目主页：https://ably.io/
源码仓库：https://github.com/ably-forks/vcdiff-decoder

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

- 包体积（解压后）：509 kB，17 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：0 个
- 首次发布：2019-07-29T18:15:38.785Z
- 最新版本发布：2023-11-27T13:36:39.006Z
- 近 30 天下载量：39292（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：7（近 12 个月 0 个）

## 中文简介

纯 JavaScript Vcdiff 从 Google 的 open-vcdiff 用 二进制解码器工作

## 安装

```sh
npm install @ably/vcdiff-decoder
```

也可以使用：`pnpm add @ably/vcdiff-decoder`、`yarn add @ably/vcdiff-decoder`、`bun add @ably/vcdiff-decoder`

## README

# Vcdiff 解码器

[![Build Status](https://travis-ci.org/ably-forks/vcdiff-decoder.svg?branch=main)](https://travis-ci.org/ably-forks/vcdiff-decoder) [![npm version](https://badge.fury.io/js/%40ably%2Fvcdiff-decoder.svg)](https://badge.fury.io/js/%40ably%2Fvcdiff-decoder)

一个用纯JavaScript写的Vcdiff解码器. 支持 Vcdiff 格式,如在 [RFC 3284 (法语)](https://tools.ietf.org/html/rfc3284)。 。 。 .

通过 Vcdiff 补丁/ delta 文件进行测试和证明 [谷歌](https://github.com/google)是因为 [打开 vcdiff](https://github.com/google/open-vcdiff) 财务报告和审定财务报表 [约书亚·麦克唐纳](https://github.com/jmacd)是因为 [ưμ㼯a](https://github.com/jmacd/xdelta)。 。 。 .

## 从 npm 为 Node.js 安装

```
npm install @ably/vcdiff-decoder
```

并要求:

```javascript
const vcdiffPlugin = require('@ably/vcdiff-decoder');
```

## 网页浏览器的脚本包含

从 CDN 中将库包含在您的 HTML 中 :

```html
<script src="https://cdn.ably.io/lib/vcdiff-decoder.min-1.js"></script>
```

我们跟着 [语义版本](http://semver.org/)。要锁定客户端库的主要或次要版本,您可以指定一个特定的版本编号——例如:

-   `https://cdn.ably.io/lib/vcdiff-decoder.min-1.js` 用于最新的 `1.*` 版本
-   `https://cdn.ably.io/lib/vcdiff-decoder.min-1.0.js` 用于最新的 `v1.0.*` 版本
-   `https://cdn.ably.io/lib/vcdiff-decoder.min-1.0.3.js` 对于版本 `1.0.3` 明确

您可以通过省略来加载非最小版本 `min-` 例如从 URL 中 `https://cdn.ably.io/lib/vcdiff-decoder-1.js`。 。 。 .

见 [标记的释放](https://github.com/ably-forks/vcdiff-decoder/releases) 用于现有版本.

## 使用量

以下代码样本显示如何与 Ably 一起使用 Vcdiff :

```javascript
const Ably = require('ably');
const vcdiffPlugin = require('@ably/vcdiff-decoder');

const realtime = new Ably.Realtime({
    key: 'YOUR_ABLY_KEY',
    plugins: {
        vcdiff: vcdiffPlugin
    },
    log: { level: 4 } // optional
});

const channel = realtime.channels.get('your-ably-channel', {
    params: {
        delta: 'vcdiff'
    }
});

channel.subscribe(msg => console.log("Received message: ", msg));
```

## 导出函数

### `decode(delta, source)`

同步解码 。 参数:

-   `delta`数字 : [`Uint8Array`](https://nodejs.org/api/buffer.html) - 转换所需的补丁/diff信息的二进制 Vcdiff 格式编码 `source` 到返回的目标
-   `source`数字 : [`Uint8Array`](https://nodejs.org/api/buffer.html) - 通过应用转换为返回目标的字节组 `delta`

回返a `Uint8Array`,“目标”,是应用“目标”的结果 `delta` 改为 `source`。 。 。 .

## 捐款

### 所需资源

#### 节点.js

这个 `vcdiff` 用于测试的该项目的 dev 依赖性无法构建 [节点.js 9](https://nodejs.org/download/release/latest-v9.x/) 更新鲜. 为此,直到 [3号](https://github.com/ably-forks/vcdiff-decoder/issues/3) 测试必须针对环境进行 [节点.js 8](https://nodejs.org/download/release/latest-v8.x/) 已安装.

在编写本报告时,这意味着:

```
vcdiff-decoder % node --version
v8.17.0
vcdiff-decoder % npm --version
6.13.4
```

对于使用 [亚投行](https://github.com/asdf-vm/asdf) 或兼容的工具来管理他们的节点.js运行时版本,我们已包含一个 [`.tool-versions`](https://npmcn.com/package/%40ably/vcdiff-decoder/.tool-versions) 文档.

#### 蟒

该版本 `node-gyp` 与上述国家防范机制版本捆绑在一起,使用了Python 3.9中去掉的API,导致 `npm install` 失败。 所以,你必须使用 Python 3.8 或更早.

对于使用 [亚投行](https://github.com/asdf-vm/asdf) 或兼容工具来管理他们的 Python 运行时版本,我们包含了一个 [`.tool-versions`](https://npmcn.com/package/%40ably/vcdiff-decoder/.tool-versions) 文档.

### 大楼

您可以使用 Webpack 触发构建 :

```
npm run grunt -- build
```

创建 `vcdiff-decoder.js` 财务报告和审定财务报表 `vcdiff-decoder.min.js` 输入 `dist` 文件夹,和 `vcdiff-decoder.js` 输入 `build/cjs` 文件夹.

### 测试

要运行所有测试用途 :

```
npm test
```

支持浏览器测试

[![](https://npmcn.com/package/%40ably/vcdiff-decoder/resources/Browserstack-logo@2x.png)](https://www.browserstack.com/)

您需要为此配置环境变量 `BROWSERSTACK_USERNAME` 财务报告和审定财务报表 `BROWSERSTACK_ACCESSKEY`。 。 。 .

## 释放程序

打开 `main` 分支 :

1.  增加版本,从源头重生(a.k.a.建立/捆绑),并作出标记的承诺,其中包括从源头重生的已建输出 `/dist` 财务报告和审定财务报表 `/build` 通过运行文件夹 `npm run grunt -- release:patch` (或 "major", "minor" 或 "prepach" 酌情 - 见 [grunt- bump 用法实例](https://github.com/vojtajina/grunt-bump#usage-examples)(中文(简体) )
2.  使用 `git push origin main --follow-tags`
3.  向国家预防机制释放 `npm publish . --access public` (单位:千美元)[此软件包](https://www.npmjs.com/package/@ably/vcdiff-decoder) 配置为要求 [2个FA](https://docs.npmjs.com/configuring-two-factor-authentication) 由出版商使用)
4.  使用 `npm run grunt -- publish-cdn` (仅由阿布利工作人员操作)
5.  访问 [标记](https://github.com/ably-forks/vcdiff-decoder/tags) 并起草新建标签的新版本

## 常见问题

### @ably/vcdiff-decoder 是什么？

纯 JavaScript Vcdiff 从 Google 的 open-vcdiff 用 二进制解码器工作

### 如何安装 @ably/vcdiff-decoder？

在项目目录运行 npm install @ably/vcdiff-decoder，或使用 pnpm add / yarn add / bun add。

### @ably/vcdiff-decoder 支持 TypeScript 吗？

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

### @ably/vcdiff-decoder 支持 ESM 还是 CommonJS？

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

### @ably/vcdiff-decoder 可以商用吗？

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

### @ably/vcdiff-decoder 的下载量有多少？

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

### @ably/vcdiff-decoder 还在维护吗？

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

