# @fungi\.computer/cairn 中文文档

规范地址：https://npmcn.com/package/%40fungi.computer/cairn/

版本：0\.1\.0
npm 元数据更新时间：2026-10-23T04:13:53.222Z
中文译文更新时间：2026-11-15T18:12:44.127Z
软件包许可：MIT

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

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

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

- 包体积（解压后）：74.8 kB，25 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：3 个
- 首次发布：2026-10-15T07:58:12.335Z
- 最新版本发布：2026-10-23T04:13:53.029Z
- 近 30 天下载量：13394（2026-10-16 至 2026-11-14，npm 官方下载统计）
- 已发布版本数：3（近 12 个月 3 个）

## 中文简介

Fungi 软件包的小型、不透明的身份和候选词原始

## 安装

```sh
npm install @fungi.computer/cairn
```

也可以使用：`pnpm add @fungi.computer/cairn`、`yarn add @fungi.computer/cairn`、`bun add @fungi.computer/cairn`

## README

# 凯恩(凯恩)`@fungi.computer/cairn`(中文(简体) )

Cairn 给 Fungi 包打入、不透明标识符、临时命令和 关联键和候选单词名。 使用它,这样你就不用 手动滚动您自己的ID格式和解析器。 软件包提供了这些值和 他们的解析规则。 调用域拥有持久性,独特性, 授权和生命周期政策.

## 安装或设置

```sh
npm install @fungi.computer/cairn
```

一揽子船舶无害环境管理`"type": "module"`)和安装 `nanoid`佐德,还有.. `uuid` 作为运行时间的依赖。 导入 ID 和 ephemeral 的根切入点 一起键,或导入 `@fungi.computer/cairn/id` 财务报告和审定财务报表 `@fungi.computer/cairn/words` 分别.

## 快开始

这个例子创造了一个打电话者拥有的身份证家庭,产生身份证, 并检查解码字符串而不更改其拼写:

```ts
import { defineIdFamily } from "@fungi.computer/cairn/id";

const jobIds = defineIdFamily({
  family: "jobs",
  version: 1,
  kinds: { job: { prefix: "job" } },
});

const jobId = jobIds.job.generate();
const result = jobIds.job.parse(jobId);
if (!result.ok) throw new Error(`Invalid job ID: ${result.error.reason}`);
```

结果是犬科动物 `job_` 标识符。 可运行的ID测试练习 家庭范围生成和剖析 [`src/id.test.ts`](https://npmcn.com/package/%40fungi.computer/cairn/src/id.test.ts)。 。 。 .

## 核心概念

`defineIdFamily` 验证信任的家族声明并返回一个代码c 每一种申报。 每个编码器都有一个品牌的TypeScript ID类型,一个Zod 用于不可信字符串边界的策略,以及 `parse` 财务报告和审定财务报表 `is` 方法 已经解码的字符串 。 1版本的ID有表格 `<prefix>_<21 lowercase base36 characters>`解码 解码, 复数,或使输入正常化。 已拒绝的解析返回已绑定的元数据和 一个原因。 它不返回被拒绝的值.

ID 不声明数据库独有性、关系、权限或实体 生命周期。 宣布一个家庭拥有这些规则和任何范围 碰撞重试.

根也出口 `replayKey`, (中文(简体) ), `deterministicReplayKey`, (中文(简体) ), `correlationKey`, (中文(简体) ), 财务报告和审定财务报表 `createCorrelationSequence`。 。 。 . `replayKey()` a. 用于一个命令的薄荷UUIDv7; 把它保留在模糊的重复中. `await deterministicReplayKey(domain, parts)` 获得同样的再播放键品牌 使用Web Crypto SHA-256和节点中长度前缀的tuple编码,浏览器 还有工人 提供稳定的主机拥有域和完整的授权范围 和存储的命令身份,所以重启会得到相同的密钥。 关联键 是用于运输或供应商关联的UUIDv4。 关联序列开始 在一次连接时为1,当它达到安全整数耗尽时会投出。 无 这些密钥中有一个持久的域名.

`words()` 从 Cairn 的导出形容词和名词中选择一个候选名称 列表。 它不保存登记册或承诺独一无二。 呼叫者选择一个单词 计数符合他们的碰撞要求.

## API 参考

见生成 [API 参考](https://npmcn.com/package/%40fungi.computer/cairn/docs/api/index.md)。公众入境点是 `@fungi.computer/cairn`, (中文(简体) ), `@fungi.computer/cairn/id`,以及 `@fungi.computer/cairn/words`。 。 。 .

## 实例和检查

测试套件包括标识语法,平时键和候选词. 建成后,进行单元测试和公众 `./id` 捆绑隔离证明 :

```sh
pnpm --filter @fungi.computer/cairn test
```

[`test/runtime/id-only-proof.mjs`](https://npmcn.com/package/%40fungi.computer/cairn/test/runtime/id-only-proof.mjs) 核实 公众 `./id` 输入点不包括词体。 重点测试 包含 [`src/id.test.ts`](https://npmcn.com/package/%40fungi.computer/cairn/src/id.test.ts), (中文(简体) ), [`src/ephemeral-key.test.ts`](https://npmcn.com/package/%40fungi.computer/cairn/src/ephemeral-key.test.ts),以及 [`src/index.test.ts`](https://npmcn.com/package/%40fungi.computer/cairn/src/index.test.ts)。 。 。 .

## 限制和错误

ID生成需要安全的随机性. 如果无法找到来源, Cairn 掷出 `CairnGenerationError` 和善良的家族在一起 无效 值得信赖的家庭声明 `CairnDefinitionError`。呼叫者必须使用 解码器在不可信线边界上的图案,然后将数据传递到 `parse`。 。 。 .

词根 `nanoid(length)` 导出被保留给需要原始随机的呼叫者 绳子。 它的有限长度强制遵循选定的上游运行时间 执行。 对可预测的结果使用有限度的非负整数. `LONG` 是一个常规大小,而不是最大。 同样, `words({ count })` 保留 传统是强迫,而不是施加最大。 CPU 和输出增长 大小, 因此在调用前验证和绑定未信任的大小 或帮助者。 使用 `defineIdFamily` 用于持久域名.

## 贡献和许可证

凯恩的执照是麻省理工学院的 见 [`LICENSE`](https://npmcn.com/package/%40fungi.computer/cairn/LICENSE)它的直接运行时间 依赖关系是 `nanoid`佐德,还有.. `uuid`。咨询它们的软件包分发 他们的执照条件.

## 常见问题

### @fungi\.computer/cairn 是什么？

Fungi 软件包的小型、不透明的身份和候选词原始

### 如何安装 @fungi\.computer/cairn？

在项目目录运行 npm install @fungi\.computer/cairn，或使用 pnpm add / yarn add / bun add。

### @fungi\.computer/cairn 支持 TypeScript 吗？

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

### @fungi\.computer/cairn 支持 ESM 还是 CommonJS？

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

### @fungi\.computer/cairn 可以商用吗？

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

### @fungi\.computer/cairn 的下载量有多少？

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

### @fungi\.computer/cairn 还在维护吗？

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

