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, 加密存储, 安全插件, 密码学, 手动系统调用, 数据同步, 本地优先, 自动化攻击