命令行工具
spieglt/FlyingCarpet avatar
spieglt/FlyingCarpet

Flying Carpet 评测:没有网络时,跨平台传文件靠它

跨平台AirDrop。通过 ad hoc WiFi 在 Android、iOS、Linux、macOS 和 Windows 之间传输文件。无需网络基础设施,只需两台近距离配备 WiFi 芯片(以及可选的蓝牙)的设备即可。

5,322 个 Star256 个 ForkRustGPL-3.0
GitHub

秒懂

它是什么?
Flying Carpet 是一个用 Rust 写的跨平台文件传输工具,支持 Android、iOS、Linux、macOS 和 Windows。它不依赖互联网或现有网络,而是通过自建热点或共享网络直连设备。本文基于项目文档和仓库信息,分析它的工作机制、使用方式、限制和适用场景。
适合谁用?
Flying Carpet 适合那些经常在没有网络的环境下传输大文件、且设备横跨多个操作系统的用户。它解决了 U 盘和网络共享在跨平台场景下的痛点,尤其是超过 2GB 的文件。
能商用吗?
可以,但有条件。GPL-3.0 是 copyleft 许可证:如果你分发包含它的软件,就必须以同一许可证公开该软件的源代码。只在内部运行、不对外分发,则不会触发这项义务。
还在维护吗?
在维护。仓库最近一次提交在 5 天前。
用什么语言写的?
主要是 Rust(依据 GitHub 的语言统计)。

以上回答依据项目的 GitHub 数据(最近同步于 2026年9月15日)和我们的分析,不构成法律意见。

开源项目深度解析

它解决什么问题:没有网络时的文件传输

Flying Carpet 的目标很明确:在没有互联网、没有路由器、没有 U 盘的情况下,把文件从一台设备传到另一台。它支持 Android、iOS、Linux、macOS 和 Windows 之间的任意组合。你不需要提前搭建网络共享,也不需要知道对方的操作系统。它适用于以下场景:你有一台笔记本电脑和一部手机,两者都没有网络连接,你想传一个大于 2GB 的文件,而不同文件系统之间直接复制又很麻烦。Flying Carpet 用两种模式解决这个问题:热点模式和共享网络模式。热点模式下,一台设备创建 WiFi 热点,另一台加入;共享网络模式下,两台设备连到同一个现有网络(可以是 WiFi 或有线),然后直接通信。

工作机制:热点模式与共享网络模式的区别

在热点模式下,一台设备充当热点,另一台加入。如果双方都支持蓝牙,它们会在你确认配对码后自动交换热点凭据;否则,热点设备会显示密码和二维码,由另一台设备手动输入。这个模式不依赖任何外部网络,但会暂时禁用你的无线互联网连接。共享网络模式是 v10 新增的,它允许两台设备通过已有的 WiFi 或有线网络传输,比如一台手机连 WiFi,一台台式机插网线,两者在同一网络下即可。接收方生成一次性密码并显示二维码,发送方输入密码或扫码后,设备会在网络上互相发现并开始传输。共享网络模式不使用蓝牙,也不需要知道对方设备类型。

如何获取和运行:从安装到编译

获取方式因平台而异。Linux 用户可以从 releases 页面下载 .AppImage 文件,或者如果是 Debian 系发行版,下载 .deb 文件并用 dpkg 安装。macOS 用户下载 .zip 文件,解压后把 .app 拖到应用程序文件夹,或者用 Homebrew 运行 brew install flying-carpet。Windows 用户下载 .msi 安装程序或 FlyingCarpet.exe 独立版本。Android 用户可以从 Google Play 或 F-Droid 安装,也可以从 releases 页面下载 APK。iOS 用户从 App Store 搜索“Flying Carpet File Transfer”。如果你要自己编译,需要先安装 Rust,然后运行 cargo install tauri-cli。对于 Linux,需要安装一堆依赖,比如 libsoup2.4* 和 libwebkit2gtk*。之后运行 cargo tauri dev 进行开发,或 cargo tauri build 生成发布版本。Android 和 Apple 应用需要从各自的子目录构建,Apple 端是独立的 Swift 移植版本,与 Rust 核心不共享代码。

限制与失败模式:哪些情况下它不适用

有几个明显的限制。首先,Apple 设备无法以编程方式启动热点,所以 Apple 设备之间的传输必须使用共享网络模式,这意味着你需要一个已有的网络,或者手动创建一个个人热点。其次,热点模式会禁用你的无线互联网连接,这可能会中断正在进行的下载或视频通话。第三,VPN 必须在两台设备上禁用,否则可能影响传输。还有,macOS 在长时间传输时有时会切回有互联网的无线网络,这可能导致传输中断。Android 版本要求 Android 10 或更高,并且某些小米、MIUI 或 HarmonyOS 设备可能不支持 LocalOnlyHotspot API,导致无法托管热点。最后,如果点击取消按钮,操作系统可能需要几秒钟才能完成热点创建或加入的清理,所以不要连续点击取消。

版本兼容性:v10 是破坏性更新

v10 引入了共享网络模式,但同时也是一个破坏性更新。运行 v10 的设备无法与 v9 或更早版本传输,会收到版本不匹配的消息。这意味着你必须在所有参与传输的设备上更新到 v10,否则无法使用。这与其他传输工具不同,比如很多工具保持向后兼容。对于用户来说,这是一个需要注意的升级成本:如果你有多个设备,必须全部更新,否则无法互传。从发布频率看,v10.0.2 到 v10.0.4 在几周内连续发布,表明项目维护活跃,但频繁的补丁也可能暗示某些问题需要快速修复。

替代方案:与 AirDrop 和 Snapdrop 的差异

最直接的替代是 AirDrop,但它仅限于 Apple 设备。如果你只有 iPhone 和 MacBook,AirDrop 是更好的选择,因为它是系统集成,无需额外安装。但 AirDrop 无法跨平台。另一个替代是 Snapdrop,它基于浏览器,通过 WebRTC 在设备间传输文件,但需要互联网连接或至少一个局域网。Flying Carpet 的不同之处在于它不依赖任何现有网络基础设施:热点模式下,它自己创建网络,因此即使周围没有任何路由器或信号,它也能工作。Snapdrop 需要设备在同一个局域网内,且浏览器支持 WebRTC,这在某些企业网络或公共 WiFi 上可能受限。Flying Carpet 还支持有线以太网,而 Snapdrop 通常只考虑 WiFi。所以如果你在野外或没有网络的地方,Flying Carpet 是更可靠的选择。

维护与许可:GPL-3.0 和平台支持

Flying Carpet 使用 GPL-3.0 许可证,这意味着如果你修改并分发它,你必须以相同的许可证开源你的修改。这可能会影响商业用途,但个人使用没有问题。项目的主要开发语言是 Rust,但 Apple 端是独立的 Swift 移植,这增加了维护成本,因为协议需要在两个代码库中保持一致。开发者在 README 中明确表示,Linux 版本主要在 Linux Mint 上测试,主要支持 Debian 系发行版,其他发行版(如 Fedora)可能遇到问题,比如有一个 issue 提到 SELinux 可能干扰。Windows 版本要求 Windows 10 或更高,首次运行会添加防火墙规则,需要 UAC 提权。iOS 和 macOS 构建需要 Xcode,并且 DEVELOPMENT_TEAM 留空,你需要自己设置签名。这些维护细节意味着,如果你使用非主流发行版或旧版系统,可能需要自己解决兼容性问题。

编辑结论

Flying Carpet 适合那些经常在没有网络的环境下传输大文件、且设备横跨多个操作系统的用户。它解决了 U 盘和网络共享在跨平台场景下的痛点,尤其是超过 2GB 的文件。但如果你只使用 Apple 设备,AirDrop 已经足够,Flying Carpet 的 Apple 间传输反而需要额外步骤。如果你需要跨平台传输,建议先确认你的 Android 设备支持 LocalOnlyHotspot API,尤其是小米、MIUI 或 HarmonyOS 设备。另外,由于 v10 是破坏性更新,所有参与传输的设备都必须升级到同一版本。最后,注意它会在热点模式下禁用你的无线互联网连接,所以如果传输过程中需要保持在线,请使用共享网络模式。

官方来源

  1. Official README
  2. Project repository
  3. Release notes
社区笔记

社区笔记