nehloo-interactive/graphnosis-secure-sync

GitHub: nehloo-interactive/graphnosis-secure-sync

从 Graphnosis 知识图谱应用中提取的本地优先加密存储与多设备同步原语库,为任意需要端到端加密和离线优先架构的应用提供通用底层支持。

Stars: 0 | Forks: 0

# graphnosis-secure-sync 本地优先的加密存储与同步原语。一个小型 TypeScript 库,包含四个松耦合的模块: - **`crypto`** — 密码短语 → Argon2id 密钥派生,XChaCha20-Poly1305 认证加密,BIP-39 恢复短语封装。唯一的 运行时依赖是 `libsodium-wrappers-sumo`。 - **`oplog`** — 每个设备的加密只追加事件日志,具备 多设备合并 reducer(最后写入者胜出)。基于 `crypto` 构建。 - **`federation`** — 跨多个图的查询运行器聚合器,具有 按图和全局的 token/node 预算执行以及敏感度分级 过滤。 - **`policy`** — 敏感度分级定义(公开 / 个人 / 敏感),按层级的节点脱敏,预算估算。 ## 起源 这些原语提取自 [Graphnosis App](https://github.com/nehloo-interactive/graphnosis-app) — 一款个人第二记忆桌面应用 — 并作为加密的 多设备存储层服务于 [Graphnosis SDK](https://github.com/nehloo/Graphnosis) (Apache-2.0) 知识图谱引擎。 将它们抽离出来是因为安全 + 同步层是通用的: 任何本地优先的加密多设备应用都可以使用相同的结构。 ## 状态 私有,1.0 之前版本。已被 Graphnosis App 用于生产环境。API 在 `0.x` 版本中可能会发生变动。从 `0.1.0` 起版本控制符合 semver 稳定标准; 破坏性变更会提升 minor 版本号。 ## 安装 虽然此包是私有的,但使用者可以通过 git 标签依赖它: ``` { "dependencies": { "@nehloo-interactive/graphnosis-secure-sync": "github:nehloo-interactive/graphnosis-secure-sync#v0.1.0" } } ``` 一旦 API 接口稳定下来,它将被发布到 npm。 ## 模块 ``` import { crypto, oplog, federation, policy } from '@nehloo-interactive/graphnosis-secure-sync'; import type { DeviceId, GraphId, OpLogEvent, SubgraphBudget } from '@nehloo-interactive/graphnosis-secure-sync'; ``` 每个模块也可以单独导入: ``` import { encrypt, decrypt } from '@nehloo-interactive/graphnosis-secure-sync/crypto'; import { writeEvent, readEvents } from '@nehloo-interactive/graphnosis-secure-sync/oplog'; ``` ## 许可证 [Functional Source License, Version 1.1, Apache 2.0 Future License](LICENSE) — `FSL-1.1-Apache-2.0`。可自由阅读、审计、fork、修改和 自托管,包括在您的组织内用于任何内部 目的,包括商业用途。 在每次发布后的 2 年排他期内的唯一限制: 您不得将此库或其修改版本作为托管或嵌入式服务提供给 第三方,前提是该服务的价值在很大程度上 源自于此。该期限过后,发布版本将自动转换为 Apache 2.0。 由 Nehloo Interactive LLC 制作。
标签:CRDT, TypeScript, 加密存储, 安全插件, 密码学, 手动系统调用, 数据同步, 本地优先, 自动化攻击