# @deepkit/bson 中文文档

规范地址：https://npmcn.com/package/%40deepkit/bson/

版本：1\.1\.0
npm 元数据更新时间：2026-10-31T21:40:45.164Z
中文译文更新时间：2026-11-01T00:22:13.578Z
软件包许可：MIT

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

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

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

- 包体积（解压后）：801 kB，92 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：0 个
- peer 依赖：@deepkit/core ^1\.1\.0，@deepkit/type ^1\.1\.0
- 首次发布：2020-10-29T18:40:47.320Z
- 最新版本发布：2026-10-31T21:40:45.026Z
- 已发布版本数：144（近 12 个月 1 个）

## 中文简介

Deepkit BSON解析器

## 安装

```sh
npm install @deepkit/bson
```

也可以使用：`pnpm add @deepkit/bson`、`yarn add @deepkit/bson`、`bun add @deepkit/bson`

## README

# BSON

`@deepkit/bson` 是BSON的解析器和序列化器的高性能TS实现， MongoDB二进制JSON格式。它是最快的JS BSON解析器，甚至比原生JSON.parse/stringify还要快。

Deepkit重新实现了它，因为它是一个高性能框架，官方的JS （JS -bson）和c++ (bson-ext)包都太慢了。 多慢?当转换数组中的10k个元素时，js-bson需要25ms， bson-ext需要31ms，而JSON -ext需要31ms。Parse只需要5毫秒。 这使得官方的BSON解析器比本地JSON.parse慢5倍。另一方面，Deepkit /type-bson只需要2毫秒，因此速度要快13倍。

### 基准

**解析** BSON缓冲区，包含一个包含10k个对象的数组。

| 方法 | 时间(女士) |
| --- | --: |
| 官方本地bson-ext | 31岁女士 |
| 官方js-bson | 25岁女士 |
| Deepkit /bson generic v2 | 6 ms |
| Deepkit /bson通用v3 | 4女士 |
| JSON.parse | 5女士 |
| deepkit JIT /类型 | 2女士 |

**序列化** 一个包含10k个对象的数组。

| 方法 | 时间(女士) |
| --- | --: |
| 官方本地bson-ext | 39岁的女士 |
| 官方js-bson | 33岁的女士 |
| JSON.stringify | 5女士 |
| deepkit / bson JIT | 2女士 |

“deepkit/bson JIT”是指基于如下模式的解析器/序列化器：

```typescript
import {t} from '@deepkit/type';
import {getBSONDecoder} from '@deepkit/bson';

interface Model {
    username: string;
    tags: string[];
    priority: number;
}

const decoder = getBSONDecoder<Model>();
const bson = new Buffer([]);

const document = decoder(bson);
```

而“deepkit/type generic”意味着无模式：

```typescript
import {parseObject, ParserV2, ParserV3} from '@deepkit/bson';
const bson = new Buffer([]);

const object1 = parseObject(new ParserV2(bson));

const object2 = parseObject(new ParserV3(bson));
```

### 差异

与官方序列化器有几个不同之处。

-   ObjectId被反序列化为字符串。
-   UUID被反序列化为字符串。
-   BigInt被支持并序列化为long。
-   支持无限大小的BigInt（序列化为二进制）
-   Long被反序列化为BigInt。

## 常见问题

### @deepkit/bson 是什么？

Deepkit BSON解析器

### 如何安装 @deepkit/bson？

在项目目录运行 npm install @deepkit/bson，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@deepkit/core（^1\.1\.0）、@deepkit/type（^1\.1\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @deepkit/bson 支持 TypeScript 吗？

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

### @deepkit/bson 支持 ESM 还是 CommonJS？

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

### @deepkit/bson 可以商用吗？

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

### @deepkit/bson 还在维护吗？

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

