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.
 
 
 
 
 
 
蒋尚宏 112c648773 update:重构消息系统,新增微信风格会话列表 1 week ago
document first commit: 项目初始化 3 weeks ago
public first commit: 项目初始化 3 weeks ago
scripts update:重构消息系统,新增微信风格会话列表 1 week ago
src update:重构消息系统,新增微信风格会话列表 1 week ago
src-tauri update:重构消息系统,新增微信风格会话列表 1 week ago
.gitignore update:修改应用图标,TypeScript改为JavaScript 2 weeks ago
README.md first commit: 项目初始化 3 weeks ago
index.html update:修改应用图标,TypeScript改为JavaScript 2 weeks ago
package.json update:修改应用图标,TypeScript改为JavaScript 2 weeks ago
pnpm-lock.yaml update:修改应用图标,TypeScript改为JavaScript 2 weeks ago
postcss.config.js first commit: 项目初始化 3 weeks ago
tailwind.config.js update:重构消息系统,新增微信风格会话列表 1 week ago
vite.config.js update:修改应用图标,TypeScript改为JavaScript 2 weeks ago

README.md

Flash Send

跨平台局域网文件传输与聊天应用,基于 Tauri 2 + Vue 3 + Rust 构建。

功能特性

  • 🔍 局域网设备发现 - UDP 广播自动发现同一网络内的设备
  • 💬 实时聊天 - WebSocket 实现的低延迟文本消息
  • 📁 文件传输 - HTTPS 加密传输,支持大文件
  • 🔒 安全通信 - TLS 加密所有通信,自签名证书
  • 💾 历史记录 - SQLite 本地存储聊天和传输记录
  • 🎨 现代 UI - 扁平化设计,参考微信/LocalSend 风格

技术栈

后端 (Rust)

  • Tauri 2 - 跨平台桌面应用框架
  • Tokio - 异步运行时
  • Rustls - TLS 加密
  • Axum - HTTP 服务
  • tokio-tungstenite - WebSocket
  • rusqlite - SQLite 数据库

前端 (TypeScript)

  • Vue 3 - 响应式 UI 框架
  • Pinia - 状态管理
  • Vue Router - 路由管理
  • TailwindCSS - 样式框架
  • Lucide Icons - 图标库

项目结构

flash-send/
├── src/                    # Vue 前端源码
│   ├── pages/             # 页面组件
│   ├── components/        # UI 组件
│   ├── stores/            # Pinia 状态管理
│   ├── api/               # Tauri API 封装
│   ├── hooks/             # Vue Hooks
│   ├── types/             # TypeScript 类型
│   └── router/            # 路由配置
├── src-tauri/             # Rust 后端源码
│   └── src/
│       ├── discovery/     # UDP 设备发现
│       ├── websocket/     # WebSocket 聊天
│       ├── http/          # HTTP 文件传输
│       ├── tls/           # TLS 加密
│       ├── database/      # SQLite 数据库
│       ├── models/        # 数据模型
│       ├── commands/      # Tauri 命令
│       └── utils/         # 工具函数
└── public/                # 静态资源

开发环境

前置要求

  • Node.js 18+
  • Rust 1.70+
  • pnpm 或 npm

安装依赖

# 安装前端依赖
npm install

# Rust 依赖会在首次构建时自动安装

开发模式

npm run tauri dev

构建发布

npm run tauri build

通信协议

UDP 设备发现 (端口 53317)

{
  "version": 1,
  "device": {
    "deviceId": "uuid",
    "deviceName": "设备名",
    "ip": "192.168.1.100",
    "wsPort": 53318,
    "httpPort": 53319,
    "capabilities": ["text", "image", "file"]
  },
  "packetType": "announce|query|response|goodbye"
}

WebSocket 消息 (端口 53318)

{
  "id": "uuid",
  "type": "text|image|event|ack|ping|pong",
  "content": "消息内容",
  "from": "发送者设备ID",
  "to": "接收者设备ID",
  "timestamp": 1700000000,
  "status": "pending|sent|delivered|read|failed"
}

HTTP 文件传输 (端口 53319)

  • POST /upload - 上传文件
  • GET /file/:id - 下载文件
  • GET /file/:id/info - 获取文件信息
  • GET /health - 健康检查

许可证

MIT License