PaperPhone Plus
微信风格的端对端加密即时通讯应用。
使用 React 19 + TypeScript + Vite 前端和 Rust (Axum) 后端重写,
获得极致性能和类型安全。
安全模型
- 无状态 ECDH + XSalsa20-Poly1305 — 逐消息临时密钥,前向保密无需会话状态同步
- 零知识服务器 — 仅存储密文,私钥仅在设备本地,永不上传
- 四层密钥持久化 — 内存 → localStorage → sessionStorage → IndexedDB,Android WebView 重启后仍可恢复
功能亮点
- 📹 视频/语音通话 — WebRTC P2P(1:1)+ Mesh 多人(≤6 人)
- 👥 群聊 — 最多 2000 人群组,纯文本消息,免打扰模式,成员管理
- 🌐 朋友圈 — 文字 + 最多 9 张图或 1 个视频(≤10 分钟),点赞、评论、标签可见性控制
- 👤 个人资料 — 联系人资料页(朋友圈动态 +「不看此人朋友圈」与「不让他看我的朋友圈」双向隐私控制)
- 📰 时间线 — 小红书风格公开发帖区,双列瀑布流布局,最多50个图片/视频+2000字文字,支持匿名发帖、点赞、评论
- ⏱️ 消息自动删除 — 5 档可选(永不/1天/3天/1周/1月)
- 🔔 消息推送 — Web Push (VAPID) + OneSignal 双通道
- 🌐 多语言 — 中文、英文、日语、韩语、法语、德语、俄语、西班牙语
- 📱 iOS 永久免签 — Safari「添加到主屏幕」,无需企业证书
- 💬 富文本消息、图片、视频、文档文件(PDF/DOCX/XLSX 等带类型图标)、语音、Emoji(200+,8 分类)、Telegram 贴纸包、送达回执、打字状态
- 🗂️ Cloudflare R2 对象存储(图片、语音与视频)
- 🏷️ 好友标签 — 标签分类筛选通讯录 + 朋友圈可见性控制
- 🎭 Telegram 贴纸包 — 动态贴纸包管理,可自定义包列表,数量无上限
- 🔑 两步验证 (2FA) — Google Authenticator TOTP,8 个恢复码
- 📷 扫码加好友/入群 — 扫一扫二维码添加好友、加入群聊,群二维码可设置有效期(1周/1月/3月)
部署后操作
- 打开分配给 client 服务的域名。
- 注册账号 — 密钥在本地设备生成。
- (可选)在 server 服务设置
R2_* 变量,启用图片/语音/视频上传功能。
- (可选)配置 Cloudflare TURN 以支持跨公网视频通话。
- (可选)设置
VAPID_* 变量启用浏览器推送通知。
- (可选)设置
TELEGRAM_BOT_TOKEN 和 STICKER_PACKS 启用 Telegram 贴纸包功能。