Offenes Protokoll · Entwurf 0.2

Vom Server zur Konsole, ein offenes Protokoll.

Lantern ist ein offener, versionierter Vertrag zwischen Konsolen-Homebrews und den Bibliotheksservern, die man zu Hause für die eigenen Spiele betreibt: die Bibliothek durchsuchen, mit Integritätsprüfung herunterladen, Spielstände und Cheats sichern.

Entwurf 0.2

Der Text kann sich vor 1.0 noch ändern. Anmerkungen sind willkommen, besonders von Client- und Server-Autoren.

Gebaut, um zu bleiben

Was es solide macht

Lantern fängt neu an: Es ist mit keinem früheren Protokoll kompatibel, also dient jede Entscheidung der Sicherheit und der Dauer.

Was neu ist

Was es hinzufügt

Was Clients bisher raten mussten, schwarz auf weiß.

Umsetzen

Für Server- und Client-Autoren

Die Spezifikation ist kurz: wenige Routen, feste Formen, schlichtes HTTP und JSON.

Einen Server schreiben

Den Handshake und die Bibliothek ausliefern; Spielstand-Sicherungen, Cheats oder Kopplung nach Belieben ergänzen und in den Funktionen erklären. Ein Server passt in ein Wochenende.

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

Einen Client schreiben

Server im lokalen Netz finden, ihre Funktionen lesen, die Bibliothek seitenweise durchgehen und den SHA-256 jedes Downloads prüfen. Ein Client passt in ein paar hundert Zeilen C++.

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

Schemas und Beispiele

Ein JSON-Schema für jedes Dokument, zu jedem ein Beispiel und eine OpenAPI-Beschreibung der Routen, um die eigenen daran zu prüfen.

schemas/v1 · examples/v1 · openapi.yaml

Im Repository: eine Konformitätssuite, die gegen einen Server läuft (conformance/), und ein kleiner Referenzserver, der sie besteht (server/). Nur eine Umsetzung, die die Suite besteht, sollte sich Lantern-kompatibel nennen.

Der erste Client wird PlayShelf, ein Homebrew-Paketmanager für die Nintendo Switch. PlayShelf

Für die eigenen Spiele

Lantern trägt, was der eigene Server hat, zwischen ihm und der Konsole hin und her. Es findet nichts und verteilt nichts: Es ist kein Weg, an Spiele zu kommen, und seine Server sind für die Spiele, die man besitzt.

Lizenzen

Frei umzusetzen

Fragen, Anmerkungen und Vorschläge gehören in die Issues des Repositorys.

Diese Website

Datenschutz

Diese Website setzt keine Cookies und speichert in deinem Browser nur die Sprache, die du in ihrer Kopfzeile wählst. Sie lädt nichts von einer anderen Website: Ihre Schriften, Bilder und Skripte werden mit ihr ausgeliefert.

Sie zählt ihre Besuche mit Umami Cloud, in der Europäischen Union (Frankfurt), ohne Cookies. Für jede aufgerufene Seite: die Seite, die Seite, von der du kommst, dein Browser, System und Gerätetyp, deine Bildschirmgröße, deine Sprache und dein Land. Deine IP-Adresse dient dazu, dein Land zu bestimmen und Besuche zu unterscheiden, und wird nicht mit ihnen gespeichert. Die Zählungen werden sechs Monate aufbewahrt, nur genutzt, um zu wissen, was gelesen wird, und nie verkauft oder weitergegeben. Umamis Datenschutzerklärung: umami.is/privacy.

Wer diese Website veröffentlicht, wer sie hostet und wie man nach seinen Daten fragt: Datenschutz und Impressum

Lesen, dann Bescheid sagen

Im Entwurf lässt sich noch etwas ändern. Ein Issue zu einer Route, einem Feld oder einem vergessenen Fall hilft allen künftigen Servern und Clients.