開放協定 · 草案 0.2

從你的伺服器到你的主機,一個開放協定。

Lantern 是主機自製軟體與人們在家中為自己的遊戲執行的遊戲庫伺服器之間一份開放、具版本的約定:瀏覽遊戲庫,帶完整性檢查地下載,保存存檔備份和金手指。

草案 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

Schema 與範例

每份文件都有 JSON Schema 和範例,還有路由的 OpenAPI 描述,可用來核對你的實作。

schemas/v1 · examples/v1 · openapi.yaml

儲存庫中已有:可針對伺服器執行的一致性測試套件(conformance/),以及一個通過該套件的小型參考伺服器(server/)。只有通過該套件的實作才應自稱相容 Lantern。

第一個用戶端將是 PlayShelf,一款 Nintendo Switch 的自製軟體套件管理器。 PlayShelf

為了你自己的遊戲

Lantern 只在你的伺服器和你的主機之間傳遞伺服器上已有的內容。它不尋找任何東西,也不散布任何東西:它不是取得遊戲的途徑,伺服器是為你擁有的遊戲準備的。

授權

可自由實作

問題、意見和建議請提交到儲存庫的 Issues。

本網站

隱私

本網站不設定任何 Cookie,只在你的瀏覽器中儲存你在頁首選擇的語言。它不從其他網站載入任何內容:字型、圖片和指令碼都隨網站一起提供。

本網站使用位於歐盟(法蘭克福)的 Umami Cloud 統計造訪,不使用 Cookie。每個被瀏覽的頁面會記錄:頁面、你來自的頁面、你的瀏覽器、系統和裝置類型、螢幕大小、語言和國家。你的 IP 位址用於判斷國家和區分造訪,不會與造訪紀錄一起保存。統計資料保存六個月,僅用於了解哪些內容被閱讀,絕不出售或分享。Umami 的隱私權政策:umami.is/privacy。

誰發布本網站、誰託管它,以及如何詢問你的資料: 隱私與法律聲明

讀一讀,再告訴我們

草案階段正是修改的時機。一個關於路由、欄位或遺漏情形的 Issue,能幫助今後所有的伺服器和用戶端。