オープンプロトコル · ドラフト 0.2

サーバーからゲーム機まで、ひとつのオープンなプロトコル。

Lantern は、ゲーム機の homebrew と、自分のゲームのために自宅で動かすライブラリサーバーとの間の、オープンでバージョン管理された約束です。ライブラリを見る、整合性を確認してダウンロードする、セーブとチートを保管する。

ドラフト 0.2

1.0 までは本文が変わることがあります。とくにクライアントやサーバーを書く方からのご意見を歓迎します。

長く使えるように

堅牢さの理由

Lantern はゼロから始めます。以前のどのプロトコルとも互換性を持たないので、すべての選択が安全と長く使えることのためにあります。

新しいこと

加えるもの

これまでクライアントが推測するしかなかったことを、文章にしました。

実装する

サーバーとクライアントの作者へ

仕様は短くまとまっています。少ないルート、決まった形、素直な HTTP と JSON。

サーバーを書く

ハンドシェイクとライブラリを提供し、セーブのバックアップやチート、ペアリングは必要なときに足して、機能として宣言します。サーバーは週末で書けます。

GET /.well-known/lantern
GET /api/lantern/v1/apps?sort=added

クライアントを書く

ローカルネットワークでサーバーを見つけ、機能を読み、ライブラリをページごとにたどり、ダウンロードごとに SHA-256 を確認します。クライアントは C++ で数百行に収まります。

User-Agent: ExampleClient/0.1
Range: bytes=0-1048575

スキーマと例

すべての文書の JSON スキーマ、それぞれの例、ルートの OpenAPI 記述。自分の実装と照らし合わせられます。

schemas/v1 · examples/v1 · openapi.yaml

リポジトリには、サーバーに対して実行する適合性テスト(conformance/)と、それに合格する小さな参照サーバー(server/)があります。テストに合格した実装だけが Lantern 対応を名乗るべきです。

最初のクライアントは、Nintendo Switch 用の homebrew パッケージマネージャー PlayShelf です。 PlayShelf

自分のゲームのために

Lantern は、あなたのサーバーにあるものをゲーム機との間で運ぶだけです。何かを探すことも配ることもしません。ゲームを手に入れる手段ではなく、サーバーはあなたが持っているゲームのためのものです。

ライセンス

自由に実装できます

質問、意見、提案はリポジトリの Issues へどうぞ。

このサイト

プライバシー

このサイトは Cookie を使わず、ブラウザに保存するのはヘッダーで選んだ言語だけです。ほかのサイトからは何も読み込みません。フォント、画像、スクリプトはすべてこのサイトから配信されます。

アクセスは、欧州連合(フランクフルト)の Umami Cloud で、Cookie を使わずに計測しています。表示されたページごとに、そのページ、参照元のページ、ブラウザ、OS、デバイスの種類、画面サイズ、言語、国を記録します。IP アドレスは国の判定と訪問の区別に使われ、記録とともに保存されることはありません。集計は 6 か月間保存され、何が読まれているかを知るためだけに使われ、販売や共有は一切しません。Umami のポリシー:umami.is/privacy。

このサイトの発行者、ホスティング、データについての問い合わせ方法: プライバシーと法的情報

読んだら、聞かせてください

ドラフトのうちが変えどきです。ルートやフィールド、見落とされたケースについての Issue は、これからのすべてのサーバーとクライアントの助けになります。