# WebDrop 零信任的端到端加密暂存与同步:文本、JSON、剪贴板、文件。浏览器内加密,后端节点完全不受信任,只保存和转发密文。 ## 状态 文档是权威来源,代码以文档为准。 | 部分 | 状态 | |---|---| | 协议、API、威胁模型 | 已定稿(`docs/`) | | `test-vectors/` | 已完成。由 `node:crypto` 独立生成,服务端(.NET)和 `@webdrop/core`(WebCrypto)各自复现 | | `server/` | 频道与便捷分享 API 已实现;含独立的可选 `WebDrop.Frontend` 静态资源模块;NativeAOT 发布为 OCI 镜像 | | `packages/core/` | 已完成并验证。168 个测试,含对着真实服务端的端到端 | | `web/` | 前端,开发中 | ## 文档 | 文档 | 内容 | |---|---| | [docs/threat-model.md](docs/threat-model.md) | 信任边界、攻击者模型、每种模式的保证、元数据泄露、不做的事 | | [docs/e2ee-boundary-comparison.md](docs/e2ee-boundary-comparison.md) | 当前信任边界、签名授权/事件的目标设计与分阶段路线 | | [docs/protocol.md](docs/protocol.md) | 密钥派生、令牌、帧格式、加密和 padding、校验算法、保留策略(协议权威文档) | | [docs/api.md](docs/api.md) | HTTP / WebSocket / SSE 接口、鉴权头、错误码 | | [docs/architecture.md](docs/architecture.md) | 组件、技术栈、NativeAOT 约束、存储模型、部署、阶段划分 | | [docs/ui-design.md](docs/ui-design.md) | 前端视觉与交互:色彩、形状、blur 约束、页面、状态与诚实提示、动效 | | [docs/frontend.md](docs/frontend.md) | 前端工程:技术栈、分层、状态模型、传输与重连、性能与可维护性约定 | | [web/AGENTS.md](web/AGENTS.md) | 前端契约:权威顺序、范围、必须遵守与禁止项 | | [packages/core/README.md](packages/core/README.md) | `@webdrop/core` 的接口、前端要做和不用做的事、必须注意的几点 | | [server/README.md](server/README.md) | 服务端的结构、配置、AOT 发布、验证码(Cap)接入 | | [docs/deployment.md](docs/deployment.md) | Podman Quadlet 自托管部署与 Woodpecker CI | | [test-vectors/README.md](test-vectors/README.md) | 协议测试向量的生成与使用 | ## 核心概念 - **频道**:唯一的顶层概念,一条只追加的帧流,有自己的 id、密钥、设置和账号成员人数上限。 - **条目**:频道里的一项内容(文本、JSON、文件),由若干帧组成,可复制、下载、删除。 - **成员**:频道里的人是用户(账号);设备只是账号的属性,同一账号的多设备只算一人,请求凭账号会话鉴权。频道强制登录,没有未登录访客(便捷分享不受影响)。 - **所有者 / 成员**:所有者持有管理密钥,成员通过频道链接加入。 - **模式**:`enc`(默认,浏览器端 AES-256-GCM)和 `raw`(负载原样,服务器可见,用于公开或用户自行加密的内容)。 ## 目录 ``` webdrop-proj/ ├─ docs/ ├─ test-vectors/ 协议测试向量,所有实现共用 ├─ packages/core/ @webdrop/core,TS,加解密与帧编解码(网页、将来的 CLI 共用) ├─ server/ .NET 10,NativeAOT;可将 Vite dist 嵌入 WebDrop.Frontend └─ web/ Vite + React + TypeScript ```