Flying Carpet:インターネットなしで端末間ファイル転送を行う
クロスプラットフォームのAirDrop。アドホック WiFi を介した Android、iOS、Linux、macOS、Windows 間のファイル転送。ネットワーク インフラストラクチャは必要なく、WiFi チップ (およびオプションで Bluetooth) を備えた 2 つのデバイスを近距離に配置するだけで済みます。
ひと目でわかる
- これは何?
- Android、iOS、Linux、macOS、Windowsの間で、共有ネットワークまたは一時Wi-Fiを使い大きなファイルを送受信するTauri系アプリです。
- 誰に向いている?
- Flying Carpet:インターネットなしで端末間ファイル転送を行うは、READMEに記載されたFlying Carpet、Shared Network mode、Hotspot mode、3290、Android 10、DEVELOPMENT_TEAMを自分の環境で確認できる開発者や利用者に向いています。反対に、対応OS、モデル精度、転送互換性、性能を文書だけで保証してほしい場合には向きません。
- 商用利用できる?
- 条件付きでできます。GPL-3.0 はコピーレフトのライセンスで、これを含むソフトウェアを配布する場合、そのソフトウェアのソースコードを同じライセンスで公開する必要があります。配布せず社内で使うだけなら、この義務は生じません。
- 今もメンテナンスされている?
- されています。最後のコミットは 5 日前です。
- 何の言語で書かれている?
- 主に Rust です(GitHub の言語統計による)。
回答はプロジェクトの GitHub データ(最終同期:2026年9月15日)と当サイトの分析に基づくもので、法的助言ではありません。
オープンソース詳細解説
共有ネットワークとホットスポット
Flying CarpetはRustで書かれたファイル転送ツールで、Android、iOS、Linux、macOS、Windowsの間でファイルを送受信することを目的としています。READMEには2つのモードが示されています。ホットスポットモードでは、一方のデバイスがアドホックWiFiホットスポットを作成し、もう一方がそれに参加します。共有ネットワークモードでは、両方のデバイスが同じ既存のWiFiまたは有線ネットワークに参加します。どちらのモードもインターネットや携帯電話回線は不要で、必要なのはWiFiまたはイーサネットチップを備えた2台のデバイス(Bluetoothはオプション)と、ホットスポットモードの場合は近距離です。リポジトリのメタデータでは「クロスプラットフォームのAirDrop」と呼ばれていますが、README自体はその表現を使っていません。代わりに、2台のデバイス以外のネットワークインフラが不要であることを強調しています。
spieglt/FlyingCarpetについて、README の Flying Carpet、Shared Network mode、Hotspot mode、3290、Android 10、DEVELOPMENT_TEAM に関する説明と、実際に生成された設定または出力を照合します。
ワンタイムパスワードとQRコード
READMEは警告から始まります。バージョン10は破壊的な変更です。バージョン10を実行しているデバイスはバージョン9以前と転送できず、ユーザーにはバージョン不一致のメッセージが表示されます。したがって、転送に関わるすべてのデバイスがバージョン10である必要があります。バージョン10では、ホットスポットを作成するのではなく既存のWiFiまたは有線ネットワークを使用したい場合のために、共有ネットワークモードが追加されました。このモードでは、受信側デバイスがワンタイムパスワードを生成し、QRコードとともに表示します。送信側デバイスはパスワードを入力するか、携帯電話でコードをスキャンすると、デバイスはネットワーク上で互いを見つけて転送を開始します。Bluetoothは使用されず、相手のオペレーティングシステムを知る必要もありません。
spieglt/FlyingCarpetについて、導入時は Flying Carpet、Shared Network mode、Hotspot mode、3290、Android 10、DEVELOPMENT_TEAM の版と配置を記録し、記載されていない既定値を推測しません。
OS別の配布形式
ホットスポットモードでは、一方のデバイスがアドホックWiFiホットスポットをホストし、もう一方が参加します。両方のデバイスがBluetoothをサポートしている場合、ユーザーがペアリングコードを確認した後、ホットスポットの資格情報を自動的に交換します。それ以外の場合は、ホストがパスワードとQRコードを表示し、参加デバイスが入力します。注目すべき制限として、Appleデバイスはプログラムでホットスポットを開始できないため、Appleデバイス間の転送は共有ネットワークモードを使用する必要があります。READMEは、両方のデバイスを同じWiFiネットワークに参加させることを提案しています。これは、あるiPhoneまたはMacBookで手動で有効にしたパーソナルホットスポット自体でもかまいません。また、ホットスポットモードではワイヤレスインターネット接続が無効になることも警告しています(共有ネットワークモードと、WindowsまたはAndroidがホストの場合を除く)。macOSは特に長い転送中に、インターネットに接続されたワイヤレスネットワークに切り替わることがあります。
spieglt/FlyingCarpetについて、実行に失敗した場合は Flying Carpet、Shared Network mode、Hotspot mode、3290、Android 10、DEVELOPMENT_TEAM のどの段階で止まったかをログとコマンド単位で切り分けます。
バージョン10の互換性断絶
READMEは転送の暗号化を具体的に説明しています。各転送は、X25519、ChaCha20-Poly1305、SHA-256を使用するNoiseプロトコルのNNpsk0ハンドシェイクでラップされます。両方のデバイスは、PBKDF2-HMAC-SHA256を600,000回の反復で転送パスワードから事前共有鍵を導出し、その鍵と混合した一時的なDiffie-Hellmanハンドシェイクを実行します。ファイル名、サイズ、ハッシュ、コンテンツは短い平文プリアンブルの後に暗号化されます。プリアンブル自体はNoiseのプロローグとしてハンドシェイクにバインドされるため、改ざんすると転送が中止されます。各転送は新しい鍵を取得し、前方秘匿性を提供します。READMEは、iOSとmacOSがAppleのCryptoKitのみを使用し、ScryptやArgon2を提供しないため、メモリハードKDFの代わりにPBKDF2が選ばれたと説明しています。完全なスキームについては、別の設計文書docs/shared-network-crypto.mdが参照されています。
spieglt/FlyingCarpetについて、複数環境を扱う場合は Flying Carpet、Shared Network mode、Hotspot mode、3290、Android 10、DEVELOPMENT_TEAM の差分を同じ入力で比較し、未確認の対応範囲を広げません。
権限、VPN、ファイアウォール
Android版はAndroid 10/APIレベル29以上が必要です。READMEは、一部のXiaomi、MIUI、HarmonyOSデバイスでは動作せず、LocalOnlyHotspot APIのサポート不足が原因と思われるが、少なくとも1台のXiaomiスマートフォンでは動作が確認されていると報告しています。WindowsはWindows 10以降が必要です。Linux版はLinux Mintで開発・テストされており、作者は主にDebianベースのディストリビューションを対象としています。Fedoraでの実行に関する問題が少なくとも1件あり、SELinuxが関係している可能性がありますが、作者は確実にはわかっていません。デスクトッププラットフォームでキャンセルボタンをクリックすると、OSがホットスポットへの参加または作成を完了しようとしているため、時間がかかることがあります。READMEは、キャンセルボタンを1回だけクリックし、数秒待つように求めています。
spieglt/FlyingCarpetについて、権限や外部接続が関わる場合は Flying Carpet、Shared Network mode、Hotspot mode、3290、Android 10、DEVELOPMENT_TEAM が要求する範囲を確認し、不要な認証情報を入力しません。
Apple端末とAndroidの制約
AndroidビルドはGoogle Play、F-Droid、およびGitHubリリースページのAPKとして配布されています。iOSはApp Storeで「Flying Carpet File Transfer」として入手できます。Linux、macOS、Windowsのバイナリはすべてリリースページにあります。Linuxにはスタンドアロン用の.AppImageとDebianベース用の.deb、macOSにはApplicationsにドラッグできる.zipまたはbrew install flying-carpet、Windowsには.msiインストーラとスタンドアロンのFlyingCarpet.exeがあります。ソースからコンパイルする場合、READMEはRustをインストールし、cargo install tauri-cliでTauri CLIをインストールし、Linuxの依存関係をインストールし(Ubuntu 20の例が示されています)、cargo tauri devまたはcargo tauri buildを実行すると述べています。AndroidビルドはAndroid/FlyingCarpet/から./gradlew assembleDebugで実行します。iOSとmacOSのビルドにはXcodeが必要で、DEVELOPMENT_TEAMは意図的に空白のため、最初のビルドはユーザーがチームを選択するか、xcodebuildにDEVELOPMENT_TEAM=YOURTEAMIDを渡すまで失敗します。
spieglt/FlyingCarpetについて、採用判断では Flying Carpet、Shared Network mode、Hotspot mode、3290、Android 10、DEVELOPMENT_TEAM を使う最小ケースを先に作り、出力またはエラーを README の前提と照合します。
編集部の結論
Flying Carpet:インターネットなしで端末間ファイル転送を行うは、READMEに記載されたFlying Carpet、Shared Network mode、Hotspot mode、3290、Android 10、DEVELOPMENT_TEAMを自分の環境で確認できる開発者や利用者に向いています。反対に、対応OS、モデル精度、転送互換性、性能を文書だけで保証してほしい場合には向きません。Flying Carpet、Shared Network mode、Hotspot mode、3290、Android 10、DEVELOPMENT_TEAMを含む最小の入力を用意し、出力、ログ、権限要求を確認してから運用範囲を決めてください。
コミュニティノート