@fungi.computer/cairn

中文文档
0.1.0发布于 2026/10/23MITTypeScriptES Module近 30 天下载 1.3万

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

中文使用文档
文档目录7 节
  1. 安装或设置
  2. 快开始
  3. 核心概念
  4. API 参考
  5. 实例和检查
  6. 限制和错误
  7. 贡献和许可证

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

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

安装或设置

npm install @fungi.computer/cairn

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

快开始

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

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。 。 。 .

核心概念

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 参考。公众入境点是 @fungi.computer/cairn, (中文(简体) ), @fungi.computer/cairn/id,以及 @fungi.computer/cairn/words。 。 。 .

实例和检查

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

pnpm --filter @fungi.computer/cairn test

test/runtime/id-only-proof.mjs 核实 公众 ./id 输入点不包括词体。 重点测试 包含 src/id.test.ts, (中文(简体) ), src/ephemeral-key.test.ts,以及 src/index.test.ts。 。 。 .

限制和错误

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

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

贡献和许可证

凯恩的执照是麻省理工学院的 见 LICENSE它的直接运行时间 依赖关系是 nanoid佐德,还有.. uuid。咨询它们的软件包分发 他们的执照条件.

版本与发布记录

@fungi.computer/cairn 共发布 3 个版本,首次发布于 2026/10/15;过去 12 个月发布了 3 个版本。

版本发布日期距今
0.1.0latest2026/10/2323 天前
0.0.12026/10/151 个月前
0.0.0-stage2026/10/151 个月前

关于 @fungi.computer/cairn 的常见问题

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