Repolode
n0-computer

n0-computer/iroh

公開鍵でアプリ同士を接続するRustライブラリ。QUIC、ホールパンチング、リレーへのフォールバックに対応。

スター
12,779
フォーク
778
未解決の Issue
183
最終コミット
13 時間前

これは何?

Irohを使うと、IPアドレスではなく公開鍵を指定してアプリからピアに接続できます。ライブラリがピアへの最適な経路を見つけて維持し、まずホールパンチングによる直接接続を試み、失敗した場合は公開リレーサーバーにフォールバックします。

接続にはnoqライブラリを介したQUICを使用します。認証付き暗号化、優先度を設定できる並行ストリーム、データグラム転送を利用でき、ヘッドオブラインブロッキングも回避できます。開発者はこれらの接続上に独自のプロトコルを構築できます。

リポジトリには、BLAKE3を使ったコンテンツアドレス型転送のiroh-blobs、パブリッシュ・サブスクライブ型オーバーレイネットワークのiroh-gossip、結果整合性を備えたキーバリューストアのiroh-docsといった、すぐに使えるプロトコルも用意されています。他言語向けのバインディングは、別のiroh-ffiリポジトリで管理されています。

主な機能

  • 01IPアドレスではなく公開鍵でピアに接続
  • 02ホールパンチングによる直接接続と、失敗時のリレーへのフォールバック
  • 03暗号化と多重化ストリームに対応したQUIC接続
  • 04ブロブ転送、ゴシップ、キーバリュードキュメント向けの既成プロトコル
  • 05公開リレーサーバーの実装をワークスペースに同梱

ユースケース

  • NAT配下のデバイス同士を接続するP2Pアプリ
  • 中央サーバーを介さずにデバイス間でファイルを同期
  • ノード間のリアルタイムメッセージングやPub/Subオーバーレイの構築

クイックスタート

  1. 1

    cargoでRustライブラリをインストールする

    cargo add iroh
  2. 2

    コード全体はechoのサンプルを参照してください

使う前に知っておきたいこと

  • 主にRustライブラリです。他の言語では、別プロジェクトのiroh-ffiバインディングを利用します。

トピック

よくある質問

iroh とは?
公開鍵でアプリ同士を接続するRustライブラリ。QUIC、ホールパンチング、リレーへのフォールバックに対応。 Irohを使うと、IPアドレスではなく公開鍵を指定してアプリからピアに接続できます。ライブラリがピアへの最適な経路を見つけて維持し、まずホールパンチングによる直接接続を試み、失敗した場合は公開リレーサーバーにフォールバックします。
iroh は無料で使えますか?ライセンスは?
iroh は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
iroh は今もメンテナンスされていますか?
活発にメンテナンス中。iroh の最終コミットは 2026年10月19日 です。
iroh は何に使えますか?
NAT配下のデバイス同士を接続するP2Pアプリ 中央サーバーを介さずにデバイス間でファイルを同期 ノード間のリアルタイムメッセージングやPub/Subオーバーレイの構築
iroh のインストール方法は?
cargoでRustライブラリをインストールする: cargo add iroh コード全体はechoのサンプルを参照してください
iroh はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/n0-computer/iroh

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト