2.1 KiB
2.1 KiB
Mesh Drop
基于 Flutter + Rust + flutter_rust_bridge 的局域网传输应用,支持设备发现、文件/文件夹/文本发送与传输队列管理。
功能
- 局域网设备发现与在线状态同步
- 文件、文件夹、文本消息发送
- 传输任务管理:接受/拒绝、取消、删除、清理完成项
- 设备信任管理(Trust/Untrust)
- TLS 开关、自动接收、历史记录与保存路径配置
- 桌面端拖拽发送(Linux/macOS/Windows)
技术栈
- Flutter (
sdk: ^3.11.0) - Riverpod
- Rust (
tokio/axum/reqwest) - flutter_rust_bridge (
2.11.1)
快速开始
1. 环境要求
- Flutter(建议
stable,项目已包含.fvmrc) - Rust toolchain(
rustup,cargo) - 对应平台的 Flutter 构建环境(Android/iOS/Desktop)
2. 安装依赖
flutter pub get
如果你使用 FVM:
fvm flutter pub get
3. 运行
flutter run -d linux
你也可以替换成其他设备,例如:
flutter run -d windows
flutter run -d macos
flutter run -d android
常用开发命令
# Flutter 代码检查
flutter analyze
# Flutter 测试
flutter test
# Dart 代码生成(Riverpod/Freezed)
dart run build_runner build --delete-conflicting-outputs
# Rust 代码检查
cargo check --manifest-path rust/Cargo.toml
配置与数据
- 应用配置文件位于系统配置目录:
<config_dir>/mesh-drop/config.json - 默认保存目录为系统下载目录(无法获取时回退到系统临时目录)
- 首次运行会自动生成设备身份密钥和 TLS 自签名证书
目录结构
lib/ Flutter UI 与状态管理
lib/backend/ FRB 生成的 Dart 绑定与模型
rust/ Rust 核心逻辑(发现、传输、配置、安全)
rust_builder/ Flutter 与 Rust 构建胶水层(cargokit)
开发说明
- Rust API 变更后,需要重新生成 FRB 绑定代码
lib/backend/*generated*与*.g.dart/*.freezed.dart文件为生成文件,请勿手改- 首次构建会编译 Rust 依赖,耗时明显长于普通 Flutter 项目