@deepkit/bson

中文文档
1.1.0发布于 2026/11/01MITTypeScriptESM + CJS零依赖

Deepkit BSON解析器

中文使用文档

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-ext31岁女士
官方js-bson25岁女士
Deepkit /bson generic v26 ms
Deepkit /bson通用v34女士
JSON.parse5女士
deepkit JIT /类型2女士

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

方法时间(女士)
官方本地bson-ext39岁的女士
官方js-bson33岁的女士
JSON.stringify5女士
deepkit / bson JIT2女士

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

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”意味着无模式:

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 共发布 144 个版本,首次发布于 2020/10/30;过去 12 个月发布了 1 个版本。

版本发布日期距今
1.1.0latest2026/11/012 天前
1.0.192025/09/221.1 年前
1.0.182025/09/221.1 年前
1.0.152025/06/261.4 年前
1.0.122025/06/051.4 年前
1.0.112025/06/021.4 年前

关于 @deepkit/bson 的常见问题

@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 和提交记录判断。