简介
随传(Suichuan):跨设备(PC + 移动端)局域网文件传输、消息、剪贴板同步应用
💡 项目说明:随传是一款完全去中心化、离线可用的局域网协作工具。数据仅在自有设备间点对点流转,无任何云端中转或账号体系。全套设计与协议契约文档详见
docs/目录。
目录
项目简介
随传(SuiChuan) 是一款无广告、零云端、离线可用的局域网多设备协作工具。它解决了多台电脑与手机之间相互传输文件、同步剪贴板以及临时即时沟通的痛点。
- 零云端中转:设备间利用点对点 HTTP/1.1 与 UDP 局域网协议直连传输,数据不出局域网;
- 端到端加密:首次配对即完成 X25519 ECDH 密钥协商,业务数据全流程 AES-256-GCM 加密保护;
- 开箱即用:免账号注册,支持局域网自动扫描、扫码绑定、手动 IP 连通及网页免安装提取码分享。
核心特性
| 特性 | 说明 | 关联文档 |
|---|---|---|
| 局域网极速直传 | 4 MiB 分片最多 4 路并发传输,不限文件体积,支持断点续传与两层 SHA-256 校验 | docs/data-transfer.md |
| 局域网即时对话 | 点对点加密收发文本与文件卡片,支持倒计时阅后即焚 | docs/data-transfer.md |
| 剪贴板自动同步 | 跨设备剪贴板实时同步,一处复制多端粘贴;内置回环抑制引擎,防止死循环 | docs/data-transfer.md |
| 面对面快传 | 无需配对绑定,双方打开同一页面即可临时互传;接收方点击同意后签发短时令牌,退出页面即失效 | docs/face-to-face.md |
| 免安装网页提取码 | 接收端无需安装应用,浏览器扫码凭提取码下载;支持手动审批与一次性凭据 | docs/data-transfer.md |
| 多通道设备发现 | UDP 广播与 HTTP 逐 IP 探测双通道并行,智能网卡筛选与无感 IP 跟随 | docs/device-discovery.md |
| 端到端安全防御 | X25519 密钥协商、挑战-应答身份认证 (/api/v1/auth) 与隐身模式防冒充 | docs/device-pairing.md · docs/identity-auth.md |
| 全平台轻量覆盖 | 原生跨平台架构,涵盖 macOS、Windows、Linux、iOS、Android | docs/conventions.md |
平台支持
| 平台 | 最低版本要求 | 核心技术栈 | 状态 |
|---|---|---|---|
| Windows | Windows 10 (64 位) | Electron (PC) / Tauri v2 (PC-Lite) | 已支持 |
| macOS | macOS 11.0 (Big Sur) | Electron (PC) / Tauri v2 (PC-Lite) | 已支持 |
| Linux | 主流 Linux 发行版 | Electron (PC) / Tauri v2 (PC-Lite) | 已支持 |
| iOS | iOS 14.0 | uni-app / Vue 3 / UTS | 已支持 (App Store) |
| Android | Android 5.0 (API 21) | uni-app / Vue 3 / UTS | 已支持 |
| HarmonyOS | 鸿蒙原生 | UTS / OpenHarmony 原生 | 规划中 |
技术架构
分层与三端分工
项目采用严格的 4 层单向依赖架构,通信协议、加密算法、状态机与数据库 Schema 均下沉至 packages/ 共享包,实现业务与平台彻底解耦:
flowchart TD
Host["宿主与平台层: pc (Electron) | pc-lite (Tauri) | app (uni-app)"] --> Domain["领域编排层: @suichuan/domain"]
Domain --> Infra["服务与基础设施层: @suichuan/local-server | @suichuan/crypto | @suichuan/database 等"]
Infra --> Core["纯逻辑与协议基座层: @suichuan/protocol | @suichuan/core (零 I/O、零平台 API)"]
| 端 | 运行环境 | UI 框架 | 加密实现 | 存储方案 | 详细说明 |
|---|---|---|---|---|---|
| PC (Electron) | Electron + Node.js | Vue 3 + Element Plus | Node.js crypto | better-sqlite3 | docs/conventions.md#83-pcelectron |
| PC-Lite (Tauri) | Tauri v2 + Rust | Vue 3 + Element Plus | Rust (aes-gcm, x25519-dalek) | rusqlite | docs/conventions.md#81-pc-litetauri--rust |
| App (uni-app) | uni-app / UTS Native | Vue 3 + Wot Design Uni | Noble Crypto (@noble/*) | uni.openDatabase | docs/conventions.md#82-appuni-app--uts |
有关架构分层约束的详细规则,请参阅 docs/conventions.md。
开发文档
随传包含完整的规范与设计文档,存放于 docs/ 目录:
| 文档 | 说明 | 重点覆盖内容 |
|---|---|---|
| API 接口文档 | 设备间 HTTP / UDP 通信协议与接口定义 | 统一响应信封、通用请求头、端到端加密格式、错误码表、UDP 广播报文 |
| 局域网设备发现 | 局域网设备发现与在线状态管理 | UDP 广播与 HTTP 双通道扫描、真实网卡筛选、IP 自动跟随与身份验证触发、心跳在线状态判定 |
| 设备配对与绑定 | 设备配对与密钥协商机制 | X25519 ECDH 密钥协商、三种连接入口(扫描/扫码/手动 IP)、IP 冲突处理、解绑与黑名单 |
| 设备身份认证 | 设备身份防冒充认证机制 | 基于会话密钥的 7 位随机串挑战-应答、AES-256-GCM 密文证明与三重比对 (nonce/ip/deviceId)、失败处理语义 |
| 数据传输 | 消息、剪贴板与文件传输机制 | 消息气泡与阅后即焚、剪贴板自动同步与回环抑制、4 MiB 分片与断点续传、网页提取码免安装分享 |
| 面对面快传 | 免绑定的临时投送通道 | 令牌签发与四重校验、本机密钥派生、准入的两条互斥路径、页面级生命周期、威胁模型与已知限制 |
| 设计规范与工程约定 | 架构分层规范与跨端工程约定 | 4 层单向依赖规则、Fail-closed 原则、死锁防护、KV 设置项规范、三端平台实现差异 |
推荐阅读顺序:设备发现 → 配对绑定 → 身份认证 → 数据传输 → 面对面快传。
Monorepo 仓库结构
仓库基于 pnpm workspace 构建:
suichuan/
├── packages/ 跨端共享包 (与平台无关)
│ ├── protocol/ 通信协议唯一真源 (路由、头名、ErrorCode、能力位)
│ ├── core/ 纯逻辑与状态机 (Heartbeat、Transfer 状态机、ID 生成)
│ ├── crypto/ 端到端加密基元 (X25519、HKDF、AES-256-GCM Provider)
│ ├── database/ SQLite Schema、迁移语句与实体映射
│ ├── domain/ 领域编排 (设备、配对、认证、消息、传输、剪贴板)
│ ├── local-server/ 本地 HTTP 端点业务处理器与路由
│ ├── share/ 网页提取码分享与审批流引擎
│ ├── transport-node/ Node.js 传输层适配器
│ └── branding/ 品牌静态资源与主题
│
├── pc/ Electron 桌面端 (全功能版)
├── pc-lite/ Tauri 2.0 桌面端 (Rust 轻量版)
├── app/ uni-app 移动端 (iOS / Android / 原生 UTS 插件)
├── official-site/ Astro 官方网站
├── docs/ 开发与架构规范文档
└── deploy/ 构建与打包部署脚本
开源计划与路线图
目前随传核心架构重构与三端解耦工作已全部完成:
| 阶段 | 内容 | 状态 |
|---|---|---|
| 架构解耦 | 将协议、加密、数据库、传输、分享引擎拆分为 9 个 packages/ 共享包 | 已完成 |
| 三端重构 | Electron 版、Tauri 轻量版与 uni-app 移动端全部对接共享包 | 已完成 |
| 跨端功能完善 | 剪贴板回环抑制、多网卡地址跟随、免安装网页提取码迭代 | 进行中 |
| 开源发布 | 仓库完整公开,接受社区 Issue 与 Pull Request | 准备中 |
参与贡献
- 反馈缺陷:GitHub Issues
- 功能建议:GitHub Discussions
- 文档补充:若发现文档中存在描述错漏,欢迎提交 PR
- 联系我们:admin@zxlee.cn · 官方网站 · 意见反馈
许可证
项目采用 MIT License 协议开源。
随传 · SuiChuan — 自在互联,随传而至。