Открытый протокол · черновик 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 стоит только реализации, прошедшей этот набор.

Первым клиентом станет PlayShelf — менеджер homebrew-пакетов для Nintendo Switch. PlayShelf

Для ваших собственных игр

Lantern переносит то, что есть на вашем сервере, между ним и вашей консолью. Он ничего не ищет и ничего не распространяет: это не способ достать игры, а его серверы — для игр, которыми вы владеете.

Лицензии

Свободно для реализации

Вопросы, замечания и предложения — в issues репозитория.

Этот сайт

Конфиденциальность

Этот сайт не использует cookie и хранит в вашем браузере только язык, выбранный в его шапке. Он ничего не загружает с других сайтов: его шрифты, изображения и скрипты отдаются вместе с ним.

Посещения считаются с помощью Umami Cloud в Европейском союзе (Франкфурт), без cookie. Для каждой просмотренной страницы: сама страница, страница, с которой вы пришли, ваш браузер, система и тип устройства, размер экрана, ваш язык и страна. IP-адрес используется, чтобы определить страну и отличать посещения друг от друга, и не хранится вместе с ними. Статистика хранится шесть месяцев, используется только для того, чтобы знать, что читают, и никогда не продаётся и не передаётся. Политика Umami: umami.is/privacy.

Кто публикует этот сайт, кто его размещает и как спросить о своих данных: Конфиденциальность и правовая информация

Прочитайте и напишите нам

Черновик — время что-то менять. Issue о маршруте, поле или забытом случае поможет всем будущим серверам и клиентам.