You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.
# 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