ファイルは最短経路で届く
内容はあなたのデバイスからデバイスへ直接移動します。他人のストレージを経由せず、間にリレーもありません。両方が家庭用ルーターの内側にいても、内容を見ない「合図」信号で NAT を貫通します。サービスは相手を見つける手助けをするだけで、ファイルのバイトは一切運びません。
ローカルファースト · ピアツーピア · オープンソース
YadoriLink は、あなたの複数のデバイス間でフォルダーを同期します。ファイルは暗号化されたトンネルでデバイス間を直接移動します。サーバーが知るのは「あなたが誰か」「どのデバイスがどのフォルダーを持つか」まで、ファイルの中身は決して知りません。
● pre-1.0 — 活発に開発中 · Rust · Linux / macOS / Windows
内容はあなたのデバイスからデバイスへ直接移動します。他人のストレージを経由せず、間にリレーもありません。両方が家庭用ルーターの内側にいても、内容を見ない「合図」信号で NAT を貫通します。サービスは相手を見つける手助けをするだけで、ファイルのバイトは一切運びません。
フォルダーをデバイスに丸ごと置くことも、オンデマンドにすることもできます。オンデマンドではプレースホルダーを置き、開いた瞬間に実ファイルを取得。容量を空けたいときは退避できます。フォルダーごと・デバイスごとに選べます。
ホストサービスが知っているのは「あなたが誰か」「どのデバイスがどのフォルダーを持っているか」だけ。ファイル内容はそもそもサーバーに届かないので、サーバー侵害や開示要求、詮索好きな運営者にも読めるものがありません。
macOS でも Windows でも Linux でも、同じエンジンが同じ判断をします。OS が違うせいで 2 台のマシンがコンフリクトの解決結果で食い違う、ということが起きません。
アプリでできることはすべてスクリプトからもできます。cron からフォルダーをリンクする、CI で状態を確認する、NAS 上でヘッドレスに動かす。普段は GUI、必要な時に CLI。
ファイル、鍵、ワイヤープロトコルに触れるコードはすべてオープンソース。読んで、ビルドして、自分で監査できます。
デバイス間は WireGuard プロトコルの暗号化トンネルで接続します。ペアリング済みのデバイス同士なら、同一ネットワーク上ではローカルブロードキャスト / mDNS で相互発見し、インターネットに出ずに同期。インターネット越しでも、各デバイスのグローバルアドレスを見つけて NAT をホールパンチングし、間にリレーを挟まず直接つながります。
同期エンジンは決定論的シミュレーションテスト — シード付きカオスラン+データ喪失検出オラクル — で検証しています。編集が黙って消えることは、同期ツールで唯一許されないバグだからです。
ピアツーピア同期自体は新しいものではありません。Syncthing や Resilio Sync は中央クラウドにファイル内容を置かずにフォルダーを同期しますし、Dropbox はアカウントやデバイスの管理をとても簡単にします。YadoriLink が目指すのは、その組み合わせです。
| Dropbox | Syncthing | YadoriLink | |
|---|---|---|---|
| 簡単なアカウント・デバイス管理 | ✓ | — | ✓ |
| ファイル内容がサーバーに保存されない | — | ✓ | ✓ |
| 開いた瞬間に取得するオンデマンドファイル | ✓ | — | ✓ |
| 同期・転送・暗号化スタックがオープンソース | — | ✓ | ✓ |
YadoriLink は pre-1.0 です。動くもの、足りないもの:
1. ダウンロードしてインストール — ビルド済みパッケージを GitHub Releases(nightly)で配布しています:
これらはテストと早期フィードバックのためのビルドです。Windows ビルドは未署名のため SmartScreen の警告が出ます。macOS ビルドは未署名・未公証です。チェックサム(SHA256SUMS)を成果物と一緒に配布しています。
2. アプリを開いてサインイン — セットアップウィザードが、Google サインイン → デバイス登録 → フォルダーの作成、または新しいデバイスでの参加 → 最初のフォルダー選択まで案内します。もう 1 台にも同じようにインストールしてサインインすれば、同期が始まります。
ターミナル派なら、同じセットアップはコマンド 5 つです(インストーラーが yadorilink を PATH に配置します):
$ yadorilink login
$ yadorilink device register --name "my-device"
$ yadorilink share create my-share
$ yadorilink link ~/some/folder my-share
$ yadorilink status
ソースからビルドする場合は cargo build --workspace --release — 詳細は README を参照してください。