# @cloudbitmaps/core 中文文档

规范地址：https://npmcn.com/package/%40cloudbitmaps/core/

版本：0\.27\.0
npm 元数据更新时间：2026-11-03T05:51:33.686Z
中文译文更新时间：2026-11-10T02:42:32.439Z
软件包许可：Apache-2\.0

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

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

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

- 包体积（解压后）：3.2 MB，70 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=22\.12
- 运行依赖：0 个
- 首次发布：2026-07-25T23:45:20.063Z
- 最新版本发布：2026-11-03T05:51:33.221Z
- 近 30 天下载量：3357（2026-10-10 至 2026-11-08，npm 官方下载统计）
- 已发布版本数：40（近 12 个月 40 个）

## 中文简介

CloudBitmaps 的内部引擎, 其它的@ cloudbitmaps 软件包是建立在其中的 。 它的主要条目在稳定承诺之外;写司机的公开合同是@cloudbitmaps/core/driver-kit. 无云 SDK.

## 安装

```sh
npm install @cloudbitmaps/core
```

也可以使用：`pnpm add @cloudbitmaps/core`、`yarn add @cloudbitmaps/core`、`bun add @cloudbitmaps/core`

## README

# @ cloudbitmaps/ core (中文(简体) )

**大多数人不安装此软件包.** 发动机在下面 [云位图](https://github.com/cloudbitmaps/cloudbitmaps)它会独自到达 当安装要的两个软件包时。取而代之的是:

```bash
pnpm add @cloudbitmaps/roaring @cloudbitmaps/s3   # the store, and the storage you have (or /gcs, or /azure-blob)
```

安装每张的同版本 `@cloudbitmaps/*` 软件包:它们一起发行,每个包都标出准确的版本 `core` 它是与建造的.

取决于 `@cloudbitmaps/core` 直接只写驱动程序,通过 `@cloudbitmaps/core/driver-kit`。 。 。 .

> **此套件的主要条目,以及 `@cloudbitmaps/core/node`这是内部的.** 主条目是引擎 `@cloudbitmaps/roaring` 和驱动软件包的构建,以及 `/node` 持有后端和键盘,需要一个节点内建. 两者均在稳定承诺之外:他们可以改变任何微小的放行,改变为要么没有变换GELOG突破入会. 安装 `@cloudbitmaps/roaring` 还有司机 这里的公开条目是 `@cloudbitmaps/core/driver-kit`写司机的合同.

> **仅限无害环境管理,节点22.12.** 使用 `import`; 用于 `require()`时标和类型脚本,参见 [常见的JS、快取和类型脚本](https://github.com/cloudbitmaps/cloudbitmaps/blob/main/docs/guide/getting-started.md#commonjs-jest-and-typescript)。 。 。 .

> 前1.0:API和上盘格式仍然可以更改. 在npm上,这些文件与它们所运送的版本相符;在GitHub上,它们描述 `main`,更改日志则说每个版本都改变了什么.

## 这是什么

解码-不可知云引擎:无限的内存缓存 `.crbm` 对象, 切入 交叉, 分块注册, 写入并打印路径, 生成收藏, 加密休息 并加密、通过重写消除、保留以及内存和本地文件系统后端(导出自 `@cloudbitmaps/core/node`,因此主条目导入已建的节点). 它已经 **零运行时间 依赖和无云 SDK**云后端是他们自己的包裹, 建造针对 `@cloudbitmaps/core/driver-kit`司机的申报合同取决于 第三方驾驶员也可以使用.

它的主要条目是内部引擎(读取引擎,商店方法的独立形式,再试和 (预算内部) `@cloudbitmaps/roaring` 和驱动软件包导入;它不是一个公共 API。 真是个 应用程序用途按名称从 `@cloudbitmaps/roaring`司机合同(储存和登记) 端口、登记簿的记录类型、读取源端口和密钥端口)导出于 `@cloudbitmaps/core/driver-kit` 仅此而已, 已完整 : 它的签名名称也会导出 .

## 如何设置存储路径

这个 `.crbm` 存储路径在 `src/core/`,每个关切单元。 箭头读作"进口":

```
                bulk-load.ts                       write path: ids in, a generation written and published
              /      |       \
             v       v        v
   publish.ts  crbm-write.ts  crbm-open.ts  <----  crbm-storage-source.ts     read path
```

`publish.ts`, (中文(简体) ), `crbm-write.ts` 财务报告和审定财务报表 `crbm-open.ts` 输入其它的. `bulk-load.ts` 进口 `sorted-chunks.ts`,它将一个排序的载荷的ID 切成块,并且没有进口它们。 在这个团体之外, `load.ts` 进口 `bulk-load.ts`, (中文(简体) ), `publish.ts` 财务报告和审定财务报表 `crbm-open.ts`· ; `erase-id.ts` 进口 `publish.ts`, (中文(简体) ), `crbm-write.ts` 财务报告和审定财务报表 `crbm-open.ts`· ; `rollback.ts` 财务报告和审定财务报表 `consistency.ts` 导入 `crbm-open.ts`。 。 。 . `combine-many.ts`, (中文(简体) ), `pinned-storage-source.ts` (仅类型)和软件包条目导入 `crbm-storage-source.ts`。 。 。 .

| 文件 | 持有 |
| --- | --- |
| `crbm-write.ts` | 写出来自内嵌位图、溪流或已编码块的不可改变的一代 |
| `sorted-chunks.ts` | 排序负载的块( c)`sorted: true`:升入的id在读取时一次切入一个块,每个块检查(一个32位的id,不低于之前的;一个重复跳过),id读取一次,以及它们为载荷所保留的第一个错误 |
| `publish.ts` | 仅转发指针 推进每个写入的结尾, 租赁补丁, 拒绝在清晰的文本生成时指向按键行, 以及解决一个没有答案的注册写 |
| `bulk-load.ts` | 装入器 `load()` 以读取头为基础: id、 解码位图或组合的块入取出, 制成块( ids buckleed, 用其编码符分出一个位图, 其中编码符可以分出, 组合的块检查) , 写出一代, 当一个登记册被接通而呼叫者不推迟时公布; `load()` 推迟,并通过 `publish.ts` 在它的戒备之后。 排序的 ID 是通过 : `crbm-write.ts` 在读取时,在行后,数字和密钥就定了 |
| `known-generations.ts` | 该行的分类账, `knownGens`: 什么是可用的,窗口 一个负载收集的名字,盖子,和分类账 一个发布和回滚写 |
| `ledger-seed.ts` | 从桶上读取一行没有的分类账的第一个窗口 |
| `crbm-open.ts` | 在没有缓存的情况下打开存储的一代:驱动器对象之上的blob读取器、检查和注释打开、将一个开口与它所读对象连接起来的身份检查、生成验证和回滚目标打开 |
| `crbm-storage-source.ts` | 读取路径 : `CrbmStorageChunkSource`,它的分辨率缓存和接针机械 |

没有写入路径模块导入 `crbm-storage-source.ts`,它只进口 `crbm-open.ts` 其他四个.

## 排行数代

登记行携带 `knownGens`: 部分的几代人知道而且还没有决定删除,每个部分都与 CRC32C 其对象的页脚商店,目前为最后一个. 它们就是它按这个顺序制造的,当一个 发布一行,没有可用的分类帐种子 1,这些种子由 `keep` 保存在桶中,其中可以包括 对象未发布负载( 孤儿 或 出错 ): 一个条目说库知道生成及其校验和, 而不是 一个负荷发布它。 其条目下方 指针是装有载荷的窗口 代代为活地租赁的窗口 所以装有载荷就删除了它所出版的东西 中,只列出不能依赖行的桶.

```
  row (schema 5)                              bucket
  currentGen: 7                               segment.3.crbm  segment.5.crbm  segment.6.crbm  segment.7.crbm
  knownGens: [ {5,crcA}, {6,crcB}, {7,crcC} ]       |               |               |              |
              \_____ window ____/  \ current        deleted by     in the window   in the window   current
                                                   name when a
                                                   load pushed it out
```

-   **一个出版社写的** 在移动指针的比较和擦拭中。 在可以使用分类账的一行中,窗口 取自世世代代的顺序: `keep` 最近编号的条目 低于新生代(最多127个),除此之外,每一次有活租期的租户,无论什么 `keep` 说,然后 输入在新一代上方编号的回滚(带入时,分类账持有量不到128,从未) 收集,没有在 `keep`),后为新一代. 取代出版的一代是 分类账的最后一个条目,所以它是第一位的, 在回滚之后, 恢复的一代排在最前面 滚回远离, 远离每一载。 超过一行,没有可用的分类账(手修理、恢复、指针) 由手移下)负载列出桶并写出窗口的数 `keep` 保存在那里: 生成 先以当前命名的行,然后以数字表示最新,每行有页脚读取(店下一次读取八行) 读取重试,被取代的一代也读取; 清晰的总结,用另一个校验和来描述它, 除他们外,还有数以百计的世代 在写完之前,再读一行,最古老的一行, 和窗前租赁的一行 取代最后一个,然后新一代。 一代人从桶中走出, 或谁的脚没有它的检查, 被排除在外。 然后,出版商通过这个统计收集.
-   **一个化身的首次出版 独自写出新一代** (无行,或无指针的行):下面没有 它被它制成电流,所以一个种子只能命名没有公布的物件.
-   **不再开始使用可用的分类账**:超过一连串出版物 `keep` 携带过64个名字 没有租赁,下一个负载与a `keep` 在64个或更少的窗口上写下它从分类账的订单中提取的窗口 租入的和超过其数目的,通过列名收集.
-   **有集所诵.** 装满了 `keep` 最多64个删除其出版物所遗漏的条目。 传球 计数(a) `keep` 标注在无租赁的指针下64个以上的分类账,或 首先装入一行,没有可用的分类账)先保存分类账自己的最近时名,再保存最新时名 按人数分列, `keep` 在全部中,并省去每行知道的名字 当它再次读取行之前删除.
-   **一个回滚带它**,用它读取的页脚的校验和将其目标移到尾端,保留每个页脚 生成该行的租赁名称, 当它剪切一个完整的分类账, 并且不写一个没有的行: 回滚 从来没有开始一个分类账.
-   **擦去的重写让自己独处**,因为它删除了每一代人;一丝一毫地删除它。 一个 消除不重写将每代人先从分类账中删除, 写在之后 查找和在第一次删除之前,只有在分类账上列出(`erase-id.ts`栅栏;其收藏 当他们在删除前读取行名时,将每代行名省去.
-   **盖子**:一个作家最多写了192个条目,并且只保留一个条目,而分类账持有的则更少 128;登记簿接受192个书面,384个读取,因此,不因分类账的大小而拒绝公布或回滚.
-   **错误**: 一个错误的分类账是 `ValidationError` 写着 `IntegrityError` 阅读; 不同意的分类账 其行被读取而未使用;所盖一行 4 或更低为 `UnsupportedError`。 。 。 .
-   **一个回滚读它**: 它只移动到一代的分类账名称上, 其对象的页脚校验和就是那个 录音,除非呼叫者通过 `allowUnknown`; 单指指针决定(一行无可用分类账,a a 指针以下的目标不需要旗帜. `rollback.ts` 守规矩.

## 文档

-   [API 参考](https://github.com/cloudbitmaps/cloudbitmaps/blob/main/docs/guide/api-reference.md),包括 [驱动工具包](https://github.com/cloudbitmaps/cloudbitmaps/blob/main/docs/guide/api-reference.md#driver-kit--what-you-need-to-implement-a-driver)
-   [开始](https://github.com/cloudbitmaps/cloudbitmaps/blob/main/docs/guide/getting-started.md)
-   [更改日志](https://github.com/cloudbitmaps/cloudbitmaps/blob/main/CHANGELOG.md)

## 许可证

阿帕奇 - 2.0

## 常见问题

### @cloudbitmaps/core 是什么？

CloudBitmaps 的内部引擎, 其它的@ cloudbitmaps 软件包是建立在其中的 。 它的主要条目在稳定承诺之外;写司机的公开合同是@cloudbitmaps/core/driver-kit\. 无云 SDK\.

### 如何安装 @cloudbitmaps/core？

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

### @cloudbitmaps/core 支持 TypeScript 吗？

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

### @cloudbitmaps/core 支持 ESM 还是 CommonJS？

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

### @cloudbitmaps/core 需要什么版本的 Node\.js？

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

### @cloudbitmaps/core 可以商用吗？

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

### @cloudbitmaps/core 的下载量有多少？

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

### @cloudbitmaps/core 还在维护吗？

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

