06fe077ef1daa17e713500b3356d503eb55aeb8a
Accepting an invitation no longer waits for the vault sync, the redundant join right after joining is skipped, and the crypto state, first log page and channel metadata are requested in parallel.
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/e2ee-boundary-comparison.md | 当前信任边界、签名授权/事件的目标设计与分阶段路线 |
| docs/protocol.md | 密钥派生、令牌、帧格式、加密和 padding、校验算法、保留策略(协议权威文档) |
| docs/api.md | HTTP / WebSocket / SSE 接口、鉴权头、错误码 |
| docs/architecture.md | 组件、技术栈、NativeAOT 约束、存储模型、部署、阶段划分 |
| docs/ui-design.md | 前端视觉与交互:色彩、形状、blur 约束、页面、状态与诚实提示、动效 |
| docs/frontend.md | 前端工程:技术栈、分层、状态模型、传输与重连、性能与可维护性约定 |
| web/AGENTS.md | 前端契约:权威顺序、范围、必须遵守与禁止项 |
| packages/core/README.md | @webdrop/core 的接口、前端要做和不用做的事、必须注意的几点 |
| server/README.md | 服务端的结构、配置、AOT 发布、验证码(Cap)接入 |
| docs/deployment.md | Podman Quadlet 自托管部署与 Woodpecker CI |
| test-vectors/README.md | 协议测试向量的生成与使用 |
核心概念
- 频道:唯一的顶层概念,一条只追加的帧流,有自己的 id、密钥、设置和账号成员人数上限。
- 条目:频道里的一项内容(文本、JSON、文件),由若干帧组成,可复制、下载、删除。
- 成员:频道里的人是用户(账号);设备只是账号的属性,同一账号的多设备只算一人,请求凭账号会话鉴权。未登录的访客以终端密钥
S登记,每个访客终端各算一人。 - 所有者 / 成员:所有者持有管理密钥,成员通过频道链接加入。
- 模式:
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
Description
WebDrop encrypted quick sharing and channel sync
1.5 MiB
0 Stars
1 Watchers
0 Forks
Languages
TypeScript
52.2%
C#
37.4%
CSS
5.7%
JavaScript
3.6%
PowerShell
0.5%
Other
0.6%