公司动态

LocalSend 快速上手教程:开源跨平台文件传输项目完整拆解

📅 2026/8/29 15:45:56
LocalSend 快速上手教程:开源跨平台文件传输项目完整拆解
LocalSend 快速上手教程开源跨平台文件传输项目完整拆解【免费下载链接】localsendAn open-source cross-platform alternative to AirDrop项目地址: https://gitcode.com/GitHub_Trending/lo/localsendLocalSend 是一款开源的跨平台文件传输应用可以看作 AirDrop 的免费替代品同一 Wi-Fi 下Android、iOS、Windows、macOS、Linux 之间都能安全收发文件和消息全程不需要互联网。本教程带你从第一次 clone 的角度看懂它的目录结构、启动流程和关键配置。它解决什么问题LocalSend 用 REST API HTTPS 加密在局域网内直连设备TLS 证书在每台设备上动态生成数据不经过任何第三方服务器。它面向两类人需要离线传文件、又不想装一堆 IM 工具的用户以及想学习 Flutter Rust 混合架构项目的开发者。clone 下来之后先别急着找入口两条命令就能跑起来git clone https://gitcode.com/GitHub_Trending/lo/localsend cd localsend/app flutter pub get flutter run第 1 行把仓库拉到本地第 2 行真正的 Flutter 应用在app/子目录先拉依赖再启动 30 秒看懂目录结构localsend/ ├── app/ # Flutter 应用lib/ 下的页面、provider、i18n 资源 ├── packages/ # coreRust 协议核心、localsend_isolatesDart↔Rust 桥 ├── cli/ # Rust 命令行版 ├── server/ # 独立 Rust 服务端 ├── support/ # 构建脚本、多语言 README ├── pubspec.yaml # Flutter 配置 └── Cargo.toml # Rust 配置packages/core里是协议、HTTP、WebRTC 的全部实现用 Rust 写UI 层通过localsend_isolates调过去同时存在pubspec.yaml和Cargo.toml说明这是典型的双语言 monorepo找代码前先分清是 Dart 还是 Rust 的事启动流程main 里只做了两件事入口在 app 入口源码注意不是app/main.dartFuturevoid main(ListString args) async { final container await preInit(args); // 1. UI 出现前的全部准备工作 runApp(RefenaScope.withContainer( container: container, child: TranslationProvider(child: const LocalSendApp()), // 2. 套上依赖容器和翻译层 )); }preInit(args)定义在 config/init.dart负责加载设置、启动本地网络服务、初始化 Rust isolate失败则弹出错误页RefenaScope是依赖注入容器组件通过context.ref拿 providerLocalSendApp外层还套了托盘、窗口、生命周期三个 WatcherApp 回到前台时会重启网络服务和发现广播⚙️ 三个最容易踩坑的配置文件app/pubspec.yaml声明 Flutter 版本要求和依赖其中本地包引用是理解架构的钥匙environment: flutter: ^3.41.0 # 要求的 Flutter 版本 localsend_isolates: path: ../packages/localsend_isolates # 指向仓库内的 Dart↔Rust 桥path依赖直接指向仓库内模块不用猜桥接层在哪.fvmrc把 Flutter 版本锁死在 3.41.9。不读它最容易在编译时报莫名其妙的错项目建议用 fvm 管理版本装好后用fvm flutter替代flutter命令。Cargo.tomlRust workspace 列出四个成员cli、packages/core、packages/localsend_isolates/rust、server并单独给加密库开了优化等级因为 RSA 密钥生成太慢会把拖慢本地测试。下一步往哪看CONTRIBUTING.md本地完整跑法多了dart run build_runner build -d这一步代码生成和 PR 规范README.md防火墙放行的 TCP/UDP 53317 端口、设备搜不到时的排查表、各平台打包命令app/assets/i18n/60 多种语言的翻译文件想从本地化切入贡献代码这里门槛最低从 clone 到flutter run只需要两分钟读懂app/lib/main.dart和两个 workspace 配置文件之后Dart 侧和 Rust 侧的边界就清楚了——这正是理解 LocalSend 源码的起点。【免费下载链接】localsendAn open-source cross-platform alternative to AirDrop项目地址: https://gitcode.com/GitHub_Trending/lo/localsend创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考