iroh
SHA-256公鍵によるダイヤルでIPアドレスを代替するモジュラーRustネットワークスタック、自動的な穴あけ(NATトラバーサル)とリレー、内蔵のblob、gossip、docsプロトコルコンビネーション。
スマートダウンロード
Download 版をダウンロード
v1.0.0 · 4.8 MB
電話をかけるようにネットワークに接続する。IPアドレスは変わるが、公開鍵は変わらない。
主な機能
- 公開鍵による本人確認を使用し、IPアドレスの変更を気にする必要がない。自動NAT越えにより直接接続を実現し、失敗時はパブリックリレーにフォールバックする。QUICプロトコルをベースに、暗号化、マルチストリーム、データグラムサポートを内蔵。すぐに使える3つのプロトコルを提供:blobs(コンテンツアドレス転送)、gossip(パブリッシュ/サブスクライブ)、docs(キーバリューストア)。継続的なパフォーマンステストにより、接続速度を保証。
できないこと
- •現在のバージョンは主にRust開発者向けであり、他の言語ではFFIバインディング(iroh-ffi、現在開発中)を介する必要があります。公開リレーサーバーは追加の遅延を引き起こす可能性があるため、本番環境ではリレーを自前で構築するか、プライバシー要件を評価することを推奨します。ホールパンチングの成功率はネットワーク環境に依存し、厳格なNAT環境下では常にリレーが使用される可能性があります。
使用例
- ピアツーピアファイル同期とコンテンツ配信
- 分散型ソーシャルネットワークまたはメッセージシステム
- IoTデバイス間の直接安全通信
詳細説明
IrohはRustで書かれたモジュラー型ネットワークスタックであり、脆弱なIPアドレスに代わり公開鍵によるダイヤルを核概念としています。QUICプロトコルをベースとし、NAT穴あけと中継フォールバックを自動で行い、暗号化、マルチストリーム、低遅延転送を提供します。libp2pなどの従来フレームワークと比べて、irohはより軽量で習得が容易です。相手の公開鍵を電話番号のように入力するだけで、ルーティング最適化はすべてライブラリが処理します。プロジェクトには3つの組み合わせ可能な高レベルプロトコル(BLAKE3ベースのコンテンツアドレス転送を行うBlobs、スケーラブルなパブリッシュ-サブスクライブオーバレイネットワークGossip、結果整合性を持つキーバリューストアDocs)が内蔵されており、すぐに使えます。現在GitHubスター数は9.4Kで、デュアルライセンスを採用しており、分散型アプリケーション、IoTダイレクト接続、ファイル同期などのシナリオに適しています。注意:現時点では主にRust言語をサポートしており、FFIバインディングは開発中です。公開中継サーバーに依存する場合はレイテンシに注意が必要です。
タグ
はじめ方
ソフトウェアをインストール
ダウンロードしたインストーラをダブルクリックし、指示に従ってください
Rustツールチェーン(rustup)がインストールされていることを確認し、次にcargo add irohを実行して依存関係を追加してください。
コード内でEndpoint::bind()を使用してエンドポイントを作成し、connect(公開鍵, ALPN)を呼び出して接続を確立します。
QUICストリームを介してデータを送信し、受信側でProtocolHandlerを実装してメッセージを処理し、コンパイルして実行すれば完了です。
- Rustツールチェーン(rustup)がインストールされていることを確認し、次にcargo add irohを実行して依存関係を追加してください。
- コード内でEndpoint::bind()を使用してエンドポイントを作成し、connect(公開鍵, ALPN)を呼び出して接続を確立します。
- QUICストリームを介してデータを送信し、受信側でProtocolHandlerを実装してメッセージを処理し、コンパイルして実行すれば完了です。
SHA-256 チェックサム確認済み
GitHub 公式 Release ページから抽出されたチェックサム
SHA256 チェックサム
9a3113360f882b510b55e18dfaed57899d8c350d0108ea8827daf42ce3353a3cこのチェックサムは GitHub Release ページから抽出されたものです。ダウンロード後にファイルの整合性を確認してください。
本プラットフォーム上のすべての SHA-256 チェックサムは、プロジェクトの公式 GitHub Release ページから抽出されたもので、一切の改変はありません。GitHub Releases ページで独自に検証できます。
オープンソースの透明性
GitHub ソースを見るアンインストール情報
Cargo.toml 内の iroh 依存行を削除し、その後 cargo update を実行してキャッシュをクリアします。ソースからクローンした場合は、プロジェクトディレクトリを直接削除してください。
追加の依存関係なし
ダウンロード後すぐに使用可能。追加のランタイムは不要です。