Protocole ouvert · brouillon 0.2

De votre serveur à votre console, un protocole ouvert.

Lantern est un contrat ouvert et versionné entre les homebrews des consoles et les serveurs de ludothèque que chacun fait tourner chez soi pour ses propres jeux : parcourir la ludothèque, télécharger avec contrôle d'intégrité, garder ses sauvegardes et ses codes de triche.

Brouillon 0.2

Le texte peut encore changer avant la 1.0. Les remarques sont bienvenues, surtout celles des auteurs de clients et de serveurs.

Fait pour durer

Ce qui le rend solide

Lantern repart de zéro : il n'est compatible avec aucun protocole d'avant, si bien que chaque choix sert la sécurité et la durée.

Ce qui est nouveau

Ce qu'il ajoute

Ce que les clients devaient deviner jusqu'ici, écrit noir sur blanc.

L'implémenter

Pour les auteurs de serveurs et de clients

La spécification est courte : peu de routes, des formes fixes, du HTTP et du JSON simples.

Écrire un serveur

Servez la poignée de main et la ludothèque; ajoutez sauvegardes, codes de triche ou appairage quand vous voulez, et déclarez-les dans ses fonctions. Un serveur tient en un fin de semaine.

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

Écrire un client

Trouvez les serveurs du réseau local, lisez leurs fonctions, parcourez la ludothèque page à page et vérifiez le SHA-256 de chaque téléchargement. Un client tient en quelques centaines de lignes de C++.

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

Schémas et exemples

Un schéma JSON pour chaque document, un exemple de chacun et une description OpenAPI des routes, pour y confronter les vôtres.

schemas/v1 · examples/v1 · openapi.yaml

Dans le dépôt : une suite de conformité à lancer contre un serveur (conformance/), et un petit serveur de référence qui la passe (server/). Seule une implémentation qui passe la suite devrait se dire compatible Lantern.

Le premier client sera PlayShelf, un gestionnaire de paquets homebrew pour la Nintendo Switch. PlayShelf

Pour vos propres jeux

Lantern transporte ce que contient votre serveur, entre lui et votre console. Il ne trouve rien et ne distribue rien : ce n'est pas un moyen d'obtenir des jeux, et ses serveurs sont faits pour les jeux que vous possédez.

Licences

Libre à implémenter

Questions, remarques et propositions vont dans les billets du dépôt.

Ce site

Confidentialité

Ce site ne dépose aucun cookie, et ne garde dans votre navigateur que la langue choisie dans son en-tête. Il ne charge rien d'un autre site : ses polices, ses images et ses scripts sont servis avec lui.

Il compte ses visites avec Umami Cloud, dans l'Union européenne (Francfort), sans cookie. Pour chaque page vue : la page, la page d'où vous venez, votre navigateur, votre système et votre type d'appareil, la taille de votre écran, votre langue et votre pays. Votre adresse IP sert à déduire le pays et à distinguer les visites, et n'est pas conservée avec elles. Les comptes sont gardés six mois, servent seulement à savoir ce qui est lu, et ne sont ni vendus ni partagés. La politique d'Umami : umami.is/privacy.

Qui publie ce site, qui l'héberge, et comment poser une question sur vos données : Confidentialité et mentions légales

Lisez-le, puis dites-le-nous

Le brouillon est le moment de changer les choses. Un billet sur une route, un champ ou un cas oublié aide tous les serveurs et clients à venir.