ZeroLink 技术栈

April 5, 2026 · View on GitHub

语言: English | 中文

ZeroLink 技术栈

Monorepo

pnpm workspaces,包含三个包:@zerolink/frontend@zerolink/backend@zerolink/shared

shared 是协议层——常量、Zod schemas、Canonical 序列化和密码学原语在前后端之间共享,防止协议分叉(例如 intent_hash 不一致)。

前端

技术用途
React 18 + TypeScript(strict)UI 框架;strict 模式捕获密码学数据类型错误
Vite构建工具与开发服务器
Tailwind CSS v4 + shadcn/ui原子化 CSS + 基于 Radix 的组件原语
Zustand轻量状态管理
React Router v6客户端路由
Zod运行时 schema 验证;防御服务器返回非预期数据
i18next双语支持(中文 / 英文)
MSWMock Service Worker,仅用于 UI 层测试,不用于协议逻辑测试

后端

技术用途
Cloudflare WorkersServerless 运行时
Durable Objects每个通道的串行化状态(version、nonce、lock、密文)
TypeScript(strict)协议边界的类型安全

密码学

用途
Web Crypto APIAES-256-GCM 加密、RSA-OAEP 密钥封装、SHA-256 哈希
@noble/hashesArgon2id KDF,用于密码派生私钥包裹密钥
@noble/ed25519浏览器端 Ed25519 Manifest 签名验证
@github/webauthn-jsonWebAuthn API 类型辅助

测试

工具范围
Vitest所有包的单元测试与集成测试
PlaywrightE2E 测试,包含 WebAuthn 模拟
React Testing Library组件测试

协议逻辑测试(Canonical、lock_proof、intent_hash)必须对接真实后端运行,MSW 不能替代。

工具链

工具用途
BiomeLint + 格式化(替代 ESLint + Prettier)
Husky + lint-stagedpre-commit:对 staged 文件执行 biome check + 全量 typecheck
GitHub ActionsCI(pr-validate.yml)与部署(deploy.yml、release.yml)

部署

前端资产通过 wrangler.toml[assets] 绑定随 Worker 一起部署,不使用 Cloudflare Pages。推送 v* tag 触发正式发布,合并到 main 自动部署 staging。

详见 DEPLOYMENT.zh.md(部署说明)和 ARCHITECTURE.zh.md(系统设计)。