# Flash Send 项目文档 欢迎阅读 Flash Send 项目文档!本文档将帮助你快速了解和熟悉这个项目。 ## 项目简介 **Flash Send** 是一款基于 Tauri 2 + Vue 3 + Rust 构建的跨平台局域网文件传输与聊天应用。它允许同一局域网内的设备进行: - 🔍 **设备发现** - 自动发现局域网内的其他 Flash Send 设备 - 💬 **即时聊天** - 与其他设备进行实时文字聊天 - 📁 **文件传输** - 安全快速地传输文件 - 🔒 **端到端加密** - 使用 TLS 加密保护数据传输安全 ## 技术栈 | 层级 | 技术 | |------|------| | 前端框架 | Vue 3 + TypeScript | | 状态管理 | Pinia | | UI 框架 | TailwindCSS | | 图标库 | Lucide Vue | | 路由 | Vue Router | | 桌面框架 | Tauri 2 | | 后端语言 | Rust | | 异步运行时 | Tokio | | HTTP 服务 | Axum | | WebSocket | tokio-tungstenite | | 数据库 | SQLite (rusqlite) | | TLS 加密 | rustls + rcgen | ## 文档目录 | 文档 | 说明 | |------|------| | [02-架构设计](./02-架构设计.md) | 整体架构、模块划分、数据流 | | [03-后端结构](./03-后端结构.md) | Rust 后端代码结构和模块说明 | | [04-前端结构](./04-前端结构.md) | Vue 前端代码结构和组件说明 | | [05-API文档](./05-API文档.md) | Tauri 命令接口详细说明 | | [06-通信协议](./06-通信协议.md) | 设备发现、WebSocket、HTTP 协议 | | [07-数据库设计](./07-数据库设计.md) | 数据表结构和操作 | | [08-开发指南](./08-开发指南.md) | 环境搭建、开发流程、构建部署 | ## 快速开始 ### 环境要求 - Node.js >= 18 - Rust >= 1.70 - pnpm / npm / yarn ### 安装依赖 ```bash # 安装前端依赖 npm install # Rust 依赖会在构建时自动安装 ``` ### 开发模式 ```bash npm run tauri dev ``` ### 构建生产版本 ```bash npm run tauri build ``` ## 核心功能 ### 1. 设备发现 通过 UDP 广播(端口 53317)自动发现局域网内的设备,无需手动配置。 ### 2. 即时聊天 使用 WebSocket(端口 53318)进行实时双向通信,支持文本消息。 ### 3. 文件传输 通过 HTTPS(端口 53319)进行加密文件传输,支持: - 大文件分块传输 - 实时进度显示 - 取消传输 - 传输历史记录 ### 4. 安全特性 - 自签名 TLS 证书 - 端到端加密传输 - 本地数据持久化 ## 端口说明 | 端口 | 协议 | 用途 | |------|------|------| | 53317 | UDP | 设备发现广播 | | 53318 | WebSocket | 即时聊天 | | 53319 | HTTPS | 文件传输 | ## 许可证 MIT License