1 ポイント 投稿者 GN⁺ 1 일 전 | 2件のコメント | WhatsAppで共有

Repository: https://github.com/localsend/localsend

  • 無料のオープンソースアプリで、インターネット接続なしにローカルネットワーク内の近くのデバイス同士でファイルやメッセージを安全にやり取りできる
  • 外部サーバーやサードパーティーサーバーに依存せず、デバイス間通信をREST APIHTTPS暗号化で処理し、高速で信頼性の高いローカル通信を実現する
  • 転送データはすべてHTTPSで保護され、TLS/SSL証明書を各デバイスで即時生成してセキュリティを高める
  • Windows、macOS、Linux、Android、iOS、Fire OSで提供されており、アプリストアやパッケージマネージャー経由でのインストールを優先的に推奨している
  • アプリに自動更新機能がないため、READMEではアプリストアまたはパッケージマネージャー経由の利用を推奨している
  • 配布チャネルには、WindowsのWinget、Scoop、Chocolatey、EXE、Portable ZIP、macOSのApp StoreとHomebrew、LinuxのFlathub、Nixpkgs、Snap、AUR、DEB、AppImage、TAR、AndroidのPlay Store、F-Droid、APK、Fire OSのAmazonが含まれる
  • 最小サポートバージョンはAndroid 5.0、iOS 12.0、macOS 11 Big Sur、Windows 10で、Windows 7をサポートする最後のバージョンはv1.15.4
  • Linuxではデスクトップ環境に応じてxdg-desktop-portal系の依存関係が必要で、Gnomeはxdg-desktop-portalxdg-desktop-portal-gtk、KDEはxdg-desktop-portalxdg-desktop-portal-kdeを必要とする
  • ほとんどの場合は追加設定なしで動作するが、送受信に問題がある場合はファイアウォールでTCP/UDP 53317の受信を許可し、送信側のTCP/UDPも許可する必要がある
  • ルーターのAP isolationが有効だとデバイス間接続が遮断されるため、デバイス検出に問題がある場合はこれを無効化する必要がある
  • ポータブルモードは、実行ファイルと同じディレクトリに空でもよいsettings.jsonファイルを置くと有効になり、設定の保存先がデフォルトパスではなくそのファイルに切り替わる
  • トレイにのみ隠した状態で起動するには--hiddenフラグを使える
  • 速度が遅い場合は5 Ghzの利用と両方のデバイスでの暗号化無効化が案内されており、Androidの受信速度低下は既知の問題として残っている
  • ソースビルドにはFlutterRustが必要で、プロジェクトは.fvmrcで指定された古いFlutterバージョンを使用するため、fvm flutterの使用が推奨される

2件のコメント

 
xguru 1 일 전

ボードゲームの集まりで撮ったタイムラプスの共有用によく使っていました。
最近はGalaxyとPixelがAirDropのような共有に対応して、少し用途が曖昧になりました。
もちろんデスクトップに送るときは、今でも便利です。

 
GN⁺ 1 일 전
Hacker Newsのコメント
  • 問題は、こうした代替手段はどれも 同じローカルネットワーク 上にいる必要があること
    Airdropの良いところは、そのローカルネットワークを裏で自動的に作って処理してくれる点だと理解している
    だから友人たちとハイキング中でも、その場ですぐ何かを送れた
    Androidに乗り換えてからは、友人の端末に テザリング してLANを作ってからLocalsendを使っているが、体験自体はずっと滑らかではない

    • https://mbarlow.github.io/thinair/
      単なる静的なGitHubページとして動く device-to-device転送 ツール
      gh repo: https://github.com/mbarlow/thinair
      各端末がスキャン用のQRコードを生成し、WebRTC接続を確立する
      Android同士では、互いにQRモードからカメラスキャンモードへ切り替えるよう知らせる オーディオchirp も使う
      Android↔Appleでも試して動作はしたが、Appleはそのオーディオchirpを拾えない
      その場合は少し待てばQRコードが消えて、スキャン段階に進める
      急ごしらえで作ったもので、もともとは鳥のさえずりのようなchirpや昔のモデム方式で、スマートフォン同士のオーディオハンドシェイクを試していた
      端末を近づけてオーディオフレームをやり取りしながら転送開始を確認するのは面白かったが、ハンドシェイクは遅く信頼性も低かった
      フローをもっと磨きたいと思っていて、今はiPhone/Android/PC間で、アプリ・メール・アカウントなしにファイルを送るときにすでに使っている
    • 本当に クロスプラットフォームP2P に最も近かったのはFlyingCarpetだった
      ただ、あまり安定しているとも使いやすいとも言えない
      https://github.com/spieglt/FlyingCarpet
    • これも試す価値がある: https://github.com/nuwainfo/ffl
      Androidアプリ で、共有時にLANは不要だという
      https://play.google.com/store/apps/details?id=com.fastfilelink.wrapper
    • Airdropもかなり 妙な動き をするときがある
      相手のスマホを見つけられないことがあり、おそらく以前の転送がバックグラウンドでひっそり失敗したときにそうなるようだ
      モバイル/Wi‑Fi接続がないと連絡先検索にも問題があり、山で別のスマホに写真を送ろうとしたときに経験した
      たまにただ固まってまったく動かないこともあり、こういうApple magicはあまり助けにならない
    • Localsendは実際のところ、Airdropがやっていることの 最後の段階 しか担っていない
      Localsendを使うには、まず1台の端末でad-hoc Wi‑Fiを作り、他の端末をそこへ接続し、その後でようやくLocalsendを起動しなければならない
      前の2段階がかなり面倒で、Airdropはそこを勝手にやってくれるので、ずっと摩擦が少なく感じられる
  • 最近使い始めたが 本当によく動作 して、Airdropよりずっと信頼できた
    ただしUXには改善の余地がある
    それでもAppleにはAirdropをもう少し直してほしい
    使うたびに信頼性が低すぎるし、端末を見つけられなかったり、Macユーザーが複数いると同じMacを2つ表示してどのユーザーなのかも示さないので混乱する

    • みんなこれを何に使っているのか気になる
      そこまでこういうアプリが必要になるほど、どんな 大きなファイル を作ってやり取りしているのかよく分からない
      自分の場合、スマホで発生するファイルは写真と動画だけで、Immichにバックアップしてからリンク共有すれば済む
      普通の人もiCloudやGoogle Photosで同じようなことをしている気がする
      文書など他のファイル同期にはownCloud OCISを使っているし、多くの場合はDropBoxやiCloud、あるいはメールやWhatsAppでも十分そうだ
      ローカルネットワークでISOのようなものを移すならSMBでコピーすればよく、実質どこでも使えて別アプリも不要
      バックアップならハードドライブをそのままつないでもいい
      だから、なぜこれを使うべきなのかあまり納得できない
    • そういう問題の トラブルシューティング はもう試したのだろうか
      昔は自分も不可視の問題があったが、最近はいつもちゃんと動く
    • 自分の場合は端末は見えても、転送を始めると半分くらいは相手側に何も表示されない
      確実に直す方法はまだ見つかっておらず、両方でAirdropをオフにして入れ直すのがいちばんマシだが、それでも 70%程度 しか効かない
  • Sendme https://github.com/n0-computer/sendme と AltSendme https://github.com/tonyantony300/alt-sendme は見ておく価値がある
    どちらもIroh https://github.com/n0-computer/iroh を使っていて、中央サーバーなしでデータを送れる オープンソースの暗号化P2P relayサービス なので、送受信できるファイルサイズの制限は実質ない
    似たようなスレッドでファイル共有アプリの話をしたときにもこれを勧めた
    https://news.ycombinator.com/item?id=47906587

    • こういう seed/code共有 を要求するサービスはいつも少し気まずい
      コードが口頭で伝えられるほど短くも単純でもないし、そのコードを送れるならたいていファイル自体もそのまま送れる
  • https://github.com/schlagmichdoch/pairdrop
    似たプロジェクトだが、これはすべて ブラウザで動作 し、"public" roomを使ってローカルネットワーク外のクライアントとも接続できる

    • これはぜひ使ってみたい
      iPhoneとLinuxデスクトップ間の転送用にLocalsendを入れてあるが、いつも順調に動くわけではない
      FirewalldでLocalsendのポートを開けても、端末同士が互いに見えるようになるまで 10分以上 かかることがある
      ブラウザベースなら少なくともdiscoveryはもっと速そうだ
    • Pairdropは本当に良い
      ドキュメントが少し見つけにくいが、FAQは https://github.com/schlagmichdoch/pairdrop/blob/master/docs/faq.md で、
      Android、iOS、Windowsの共有メニュー統合方法は https://github.com/schlagmichdoch/PairDrop/blob/master/docs/how-to.md にある
      sharedropとsnapdropがLimeWireに買収された後に壊れたため、それをforkしたものだ
    • 名前は PearDrop であるべきだった
  • Airdrop代替を名乗るものについては spamsolutions.txt のようなものが必要だと感じる
    これは、既存のWi‑Fiネットワーク に2つのピアが両方つながっていなくても使えるべき、という基準を満たしていない
    https://craphound.com/spamsolutions.txt

  • 似たようなものを Tauri で出したことがある
    インストーラーのサイズはMacで約27MB、Linux .debで45MB、Windowsで53MBほどで、Electronは最低でも150MBくらいだった
    .AppImageだけは例外で110MBほどだが、ランタイムをバンドルするためだ
    このサイズ削減はOSのwebviewを再利用することで実現するが、それが同時にコストでもある
    LinuxのWebKitGTKはMacのWebKitやWindowsのEdge WebViewとは本当に挙動が違い、Chromiumが肩代わりしてくれていた部分がなくなるため、クロスプラットフォームデバッグ に時間を取られる
    意外にもさらに驚いたのは、フレームワークより Linuxパッケージング のほうだった
    AppImageはどこでも動くが、大半のユーザーには二級市民のように感じられ、.debは主流ディストリをカバーするものの、動き続けるglibcバージョンを追いかけなければならない
    Snap/Flatpakは公式なcross-distroの答えのように見えるが、サンドボックスと権限処理のせいで、インディー開発者は数週間を簡単に溶かしてしまう
    結局.debと.AppImageを配布したところ、数時間もしないうちに「なぜAURにはないのか」というメールが来始めた

  • ブラウザでも動く
    https://web.localsend.org/
    WindowsからAndroid、iOSまで転送できる

    • 自分の環境ではこれは動かなかった
      Firefox、Chrome、スマホ、ノートPCで送受信の両方を試した
      コンソールには WebRTC: ICE failed, add a TURN server and see about:webrtc for more details. と出ていて、これをユーザーがどう解決すべきなのかよく分からなかった
      検索してもほとんどが開発者向けの助言ばかりだった
      最終的に分かったのは、Tailscale を切ると動くということ
    • ブラウザで LAN discovery をどうやっているのか気になる
    • いいね
      ただ、v1.18.0 はまだF-droidには来ていない
  • 自分も去年この領域で何か作っていた
    基本的には peer-to-peer filesystem であるkeibidropを作った: https://keibidrop.com/
    先週公開したもので、local sendがやることに加えてWANでも動作する
    モバイルアプリはまだリリースしていない
    さらに一歩進んでいる点は、双方向で同期される virtual filesystem まで備えていることだ
    リポジトリはこちら: https://github.com/KeibiSoft/KeibiDrop
    UIを除くコードはオープンソースで、loopback基準でlocalsendともベンチマークしたが、local sendのほうが速かった
    https://keibisoft.com/blog/keibidrop-benchmarks-vs-competition.html
    昨日は/r/golangにもコメントスレッドを立ててみようとした
    内部的にはPQC、gRPC、FUSEを使っている

  • Linuxに移ってから最初に入れたアプリのひとつがこれだった
    オープンソースアプリ がどれだけ素晴らしいかをはっきり実感させてくれた

  • Tailscale が有効だと、Localsendは今のところ安定して動作しないようだ
    残念な点だ
    同じ tailnet 内のクライアント同士でもファイル転送をサポートしてくれたら本当にうれしい