Repolode
nanami-0713

nanami-0713/relay-kit

Cloudflare Workersにデプロイできるセルフホスト型のエンドツーエンド暗号化リレー。スマートフォンから、ポートを公開せずにデスクトップ上のローカルポートへ接続できます。

スター
193
フォーク
22
未解決の Issue
0
最終コミット
5 日前

これは何?

relay-kitは、スマートフォンなどのリモートクライアントと、デスクトップ上で動作するサービスの間に入るリレーサーバーです。リレーはDurable Objectsを使ってCloudflare Workers上で動作し、転送するのは暗号文とルーティングトークンのみなので、復号は両端でのみ行われます。ペアリングには256ビットのコードを1つ使用し、これを使ってルーティングトークンとPAKEソルトも導出します。そのため、コードがなければリレーはハンドシェイクを完了できません。

リポジトリには、リレー本体、任意のローカルHTTPまたはWebSocketポートをプロキシするリファレンスエージェント、トンネル経由でfetchとWebSocketを提供するリファレンスクライアントが含まれています。Nodeベースのリレーフィクスチャは、ローカルテストや単一プロセスでのセルフホスト向けに同じプロトコルを実装しています。プロトコルはPROTOCOL.mdに記載されており、コアパッケージはWebCryptoのみを使用するため、Node 18以降、ブラウザー、Capacitor WebViewで動作します。

このプロジェクトはAlma AIアシスタントのリレープロトコルをベースにしていますが、Almaの公式クライアントとはワイヤー互換性がありません。初期状態ではレート制限がなく、ハンドシェイクも正式な監査を受けていません。

主な機能

  • 01単一のwranglerコマンドでリレーをCloudflare Workersにデプロイできます。
  • 02リレーが扱うのは暗号文とルーティングトークンのみで、復号はエンドポイントで行われます。
  • 031つのペアリングコードから、ルーティングトークンとPAKEソルトの両方を導出します。
  • 04リファレンスエージェントで、任意のローカルHTTPポートやWebSocketポートをプロキシできます。
  • 05コア暗号パッケージはWebCryptoのみに依存し、Node 18以降とブラウザーで動作します。
  • 06ローカルテストやセルフホストに使えるNode製のリレーフィクスチャが含まれています。

ユースケース

  • 別のネットワークにいるスマートフォンから、ローカルの開発サーバーやデスクトップのWebダッシュボードに接続する。
  • 自分のCloudflareアカウント上で、プライベートな暗号化トンネルをセルフホストする。
  • 文書化されたrelay-e2e/v1プロトコルを使って、独自のエージェントやクライアントを構築する。

クイックスタート

  1. 1

    依存関係をインストールする

    npm install
  2. 2

    Cloudflareアカウントにログインする(初回のみ)

    npx wrangler login
  3. 3

    relay serverのディレクトリに移動する

    cd workers/relay
  4. 4

    relayをCloudflare Workersにデプロイする

    npx wrangler deploy

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

  • ハンドシェイクは独自実装のPAKE風方式で、正式な検証や監査を受けていません。
  • このプロトコルは、標準の状態では公式Almaクライアントとワイヤー互換性がありません。
  • workers.devドメインは中国本土の多くのネットワークでブロックされているため、カスタムドメインまたはプロキシが必要になる場合があります。

収録されている特集

トピック

よくある質問

relay-kit とは?
Cloudflare Workersにデプロイできるセルフホスト型のエンドツーエンド暗号化リレー。スマートフォンから、ポートを公開せずにデスクトップ上のローカルポートへ接続できます。 relay-kitは、スマートフォンなどのリモートクライアントと、デスクトップ上で動作するサービスの間に入るリレーサーバーです。リレーはDurable Objectsを使ってCloudflare Workers上で動作し、転送するのは暗号文とルーティングトークンのみなので、復号は両端でのみ行われます。ペアリングには256ビットのコードを1つ使用し、これを使ってルーティングトークンとPAKEソルトも導出します。そのため、コードがなければリレーはハンドシェイクを完了できません。
relay-kit は無料で使えますか?ライセンスは?
relay-kit は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
relay-kit は今もメンテナンスされていますか?
活発にメンテナンス中。relay-kit の最終コミットは 2026年11月1日 です。
relay-kit は何に使えますか?
別のネットワークにいるスマートフォンから、ローカルの開発サーバーやデスクトップのWebダッシュボードに接続する。 自分のCloudflareアカウント上で、プライベートな暗号化トンネルをセルフホストする。 文書化されたrelay-e2e/v1プロトコルを使って、独自のエージェントやクライアントを構築する。
relay-kit のインストール方法は?
依存関係をインストールする: npm install Cloudflareアカウントにログインする(初回のみ): npx wrangler login relay serverのディレクトリに移動する: cd workers/relay relayをCloudflare Workersにデプロイする: npx wrangler deploy
relay-kit はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/nanami-0713/relay-kit

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

関連プロジェクト