# @cruba/crubal 中文文档

规范地址：https://npmcn.com/package/%40cruba/crubal/

版本：0\.3\.77
npm 元数据更新时间：2026-11-09T03:29:00.640Z
中文译文更新时间：2026-11-11T01:57:16.749Z
软件包许可：Apache-2\.0

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

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

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

- 包体积（解压后）：1.6 MB，111 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=20
- 运行依赖：0 个
- 首次发布：2026-10-14T17:57:24.998Z
- 最新版本发布：2026-11-09T03:29:00.399Z
- 近 30 天下载量：9422（2026-10-11 至 2026-11-09，npm 官方下载统计）
- 已发布版本数：51（近 12 个月 51 个）

## 中文简介

CRUBAL的参考执行:读取,打印,检查并运行CRUBAL,是任何类型事物的数据的一种语言和引擎.

## 安装

```sh
npm install @cruba/crubal
```

也可以使用：`pnpm add @cruba/crubal`、`yarn add @cruba/crubal`、`bun add @cruba/crubal`

## README

# @克鲁巴/克鲁巴

CRUBAL参考实施. 纯函数, JSON 和 JSON 退出, 因此编译的核心可以替换 后面的内脏 相同的API.

**达到的水平: 视图**,该谱的每一章(1–14). 符合规定索赔: `CRUBAL 2 · Views · corpus 2026-10-19` (大门,2026-10-19; `CLAIM.md`) (中文(简体) ).

-   **读者 :** 文本窗体和 JSON 两种方式, 面型类型, 未知的密钥保存准确, 简单字名拒绝 和行号.
    
-   **词典 :** 完整定义,公布检查内容和类别,通过会议、别名和单位解决 折叠、对面和已磨损的分类进行价值检查.
    
-   **规则:** 规则块和正面快捷键,公布检查(按地址划分,没有矛盾,一个) 并按顺序运行的引擎: 拒绝、 持有、 填充( 包括故障门的) `-`),导出(有 `??` 财务报告和审定财务报表 `?`,卷起),标出,不完整,完整和完整 价值状态测试和全球独特性.
    
-   **存储 :** 将hash连接的日志与编辑、接收合同(地图、价值地图、别名、, 形状、被忽略、被保持; 原始字节及其散列保存), 由信任命令以替代方式着陆, 匹配修改行前的部分, 验证证据( 独立证人、 否决、 版本分割) 并附有补充说明和审查队列.
    
-   **交换 :** 合同公布检查(每类部分、定义的方面、价值图中的实际值、, 仅作为名称的证书),分步骤运行(`who` 包含角色、需求、用嵌入路径映射、值图 (b) 接收与记录和地面比较的运行,通过信任或 建议、提议和接受只有重叠流动和人的价值从未被推翻的地方, 对照放映者的密钥及其日志验证了边框包和包检查(前缀、信任) 条目,不更改延伸).
    
-   **视图 :** 形状为将地图填入槽(地址、下层的汇总、模板、所需) 插槽),带有选择的视图,上下文(`of`,指针,隐藏,顺序和页面,过滤器作为子索引 范围 和值 桶 和 计数 遵循其他 采样,可索引登陆页,受众和 `shown to` 规则(新的和未知的价值观永远不公开),缩小观众范围的角色,可移植的形状, 并读取决定写作中哪个行会 stale.
    
-   **骨干(第1.12、8.5、9.2a、10.7、12.6、14章):** 日志作为效果,从日志重建 一个人, `define` 为工作软件包和使条目成为唯一方法的日记撰写 变动(`log.ts`; 有捆绑和强弱键的到来(`arrival.ts`; 折叠和自有密钥 附加、分解、归档、合并和指令(`lifecycle.ts`);所有人、边缘、模式、设保人 链条、许可菜单、闸门和紧急准入`access.ts`; 分区视图、投影 带有光标和重排的流和流订阅( r)`views.ts`, (中文(简体) ), `exchange.ts`); 记录设置每 模块读取,所以后端只能装入操作所需的内存 1个(`records.ts`,Docs/design/store.md);作为 JSON 文档的包,打印回文本表,这样 文本阅读器保持一个解析器、散列并签名(`bundle.ts`),并被切除为成员版本 diff, 4.8和5.11的更改分类符和食谱要求(`publish.ts`, (中文(简体) ), `crubal publish`· ; 文件/设计/出版.md);以书面方式审查决定,每个条目都有其导致的定义、价值或发布(`review.ts`; 持有值 在判决再次改变时回来; 收养、归还、复制和分拆(`lifecycle.ts`);测量合同着陆观测,第一个填入空出 数值,和在阈值下提出的版本拆分,从未制作(`exchange.ts`, (中文(简体) ), `proposeSplit` 内 `store.ts`);手工制作的清单(`select: list:` 在核心侧面 `crubal:items`),其插槽所控的页面形状 其他视图随页面记录作为上下文运行, 依赖在过滤器桶内计数, 进一步 形状在 `shapes` 和核心数据 `crubal:jsonld` 为公众提供结构化数据`views.ts`); 提供和取用报价模式:一次丢弃副本,观察存储链接,没有价值,收集 介绍者更新了自己早期的数值 并且从未超过消费者的 控制副本 介绍人的条件(到期、重新分享、可撤销)并撤回介绍人停止给予的内容 提供建造者并进行过期扫荡`exchange.ts`\- 一个人的到来拥有 `domain:id` 当包让一个人 拥有这种钥匙(14.1), `keyFor` 选择一个键,其长度为输入时刻(11.7); 表格作为数据来自合同的需要、记录的答案和状态以及呼叫者的边缘 (单位:千美元)`forms.ts`,文件/设计/索引和格式;以及边框 查阅访问、期刊,并给予消费者优势(`exchange.ts`) (中文(简体) ).
    

跑步适用规则(7.4分步6):a `must` 规则不会被停 是一个矛盾引申 规则和永远不着陆,a `suggest` 填满了土地 `origin: derived` 规则 联合国 `via`,一个改变的判决 维持,每个是记录效果.

它通过每个诉讼档案(198个案件); `crubal claim <corpus> --out CLAIM.md` 管理每个级别,写索赔,13.3。 没有收养人和第三方: `test.example` 拥有数据, `market:` 代表任何市场, `bench` 任何内部工具,以及 产品,单位等都是测试包的自有种类,从来不是核心的.

存储还对照所有者公布的密钥检查Ed25519签名,重放其收录记录 保留字节(决定,保留较早的结果),按密钥逐项审查未知值和新值 将非UTF-8有效载荷作为基数64 包裹本身的信任顺序和侧面命令.

```sh
npm test                                   # unit tests and the Reader corpus
node bin/crubal.ts test ../../corpus --level views   # the corpus runner, case by case
node bin/crubal.ts read data.crubal --defs facets.crubal
node bin/crubal.ts print data.json --defs facets.crubal [--plain]
```

需要节点23.6或更晚(它直接运行TypeScript).

| 文件 | 对 |
| --- | --- |
| `src/tree.ts` | 线条、注释、缩进、对分隔符(第2.1章) |
| `src/lex.ts` | 引用、细节和短名单(2.5-2.7) |
| `src/defs.ts` | 读者需要的定义:类型、数量、单位、行、级别(4.2、4.5、11.2) |
| `src/read-text.ts` | 文本改为 JSON 表格 (2, 3) |
| `src/print-text.ts` | jSON 表格为条形文字( 2. 9) |
| `src/canonical.ts` | 装有套装的JSON(3.9) |
| `src/dictionary.ts` | 定义为JSON、公布检查、解析、折叠、值检查(4、5) |
| `src/conditions.ts` | 带有三等值空格的条件(6.3) |
| `src/units.ts` | 启动单位表,直到标准单位包存在 |
| `src/rules.ts` | 规则、快捷键、规则集检查和写引擎(6) |
| `src/store.ts` | 木材、接收合同和接收、着陆和信任、部分匹配、证据(8、9) |
| `src/migrate.ts` | 移徙食谱、检查和补充(10) |
| `src/exchange.ts` | 合同检查、运行、提议和接受、边界(7、8.5.1) |
| `src/packages.ts` | 软件包文件:前缀、信任条目、扩展(11) |
| `src/views.ts` | 形状、观点、过滤器、受众和角色、预测和停滞(12) |
| `src/corpus.ts` | (13个) |

接下来: 公布回购, 公布 `@cruba/crubal`,并开始crubal.com.

## 常见问题

### @cruba/crubal 是什么？

CRUBAL的参考执行:读取,打印,检查并运行CRUBAL,是任何类型事物的数据的一种语言和引擎\.

### 如何安装 @cruba/crubal？

在项目目录运行 npm install @cruba/crubal，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 crubal，可以用 npx crubal 直接运行。

### @cruba/crubal 支持 TypeScript 吗？

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

### @cruba/crubal 支持 ESM 还是 CommonJS？

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

### @cruba/crubal 需要什么版本的 Node\.js？

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

### @cruba/crubal 可以商用吗？

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

### @cruba/crubal 的下载量有多少？

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

### @cruba/crubal 还在维护吗？

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

