Borrador 0.2
El texto aún puede cambiar antes de la 1.0. Los comentarios son bienvenidos, sobre todo de quienes escriben clientes y servidores.
Hecho para durar
Lo que lo hace sólido
Lantern empieza de cero: no es compatible con ningún protocolo anterior, así que cada decisión sirve a la seguridad y a la duración.
- Versionado dos veces, en la ruta y en cada documento: un cambio nunca rompe un cliente en silencio.
- Un token por dispositivo, aprobado en el servidor y revocable uno a uno: nunca se escribe ni se guarda una contraseña en la consola.
- HTTPS en todas partes. Un servidor en casa con su propio certificado queda fijado al emparejar, una vez comparada la huella de su clave en las dos pantallas.
- Contenido verificado: cada archivo llega con su SHA-256, que la consola comprueba antes de instalar nada.
- Funciones declaradas: el servidor dice qué ofrece, a quién y en qué esquema.
- Una suite de conformidad que comprueba un servidor desde fuera, y un servidor de referencia que la supera.
Lo nuevo
Lo que añade
Lo que los clientes tenían que adivinar hasta ahora, por escrito.
- Un SHA-256 para cada archivo, comprobado antes de instalar nada.
- Una versión en la ruta y un schema en cada documento: un cliente y un servidor de edades distintas siguen entendiéndose.
- Una lista de funciones declarada en lugar de adivinada.
- Páginas con cursor que no saltan ni repiten nada mientras cambia la biblioteca.
- Emparejar una consola con un token revocable, en lugar de guardar en ella una contraseña.
- Errores con códigos de estado reales, todos en un mismo formato.
- Nada oculto: ningún identificador de hardware, ningún cifrado propietario, ningún cambio en el cliente decidido por el servidor.
Implementarlo
Para quien escribe servidores y clientes
La especificación es breve: pocas rutas, formas fijas, HTTP y JSON sencillos.
Escribir un servidor
Sirve el saludo inicial y la biblioteca; añade copias de partidas, trucos o emparejamiento cuando quieras y decláralos en sus funciones. Un servidor cabe en un fin de semana.
GET /.well-known/lantern
GET /api/lantern/v1/apps?sort=added
Escribir un cliente
Encuentra los servidores de la red local, lee sus funciones, recorre la biblioteca página a página y comprueba el SHA-256 de cada descarga. Un cliente cabe en unos cientos de líneas de C++.
User-Agent: ExampleClient/0.1
Range: bytes=0-1048575
Esquemas y ejemplos
Un esquema JSON para cada documento, un ejemplo de cada uno y una descripción OpenAPI de las rutas, para comprobar los tuyos.
schemas/v1 · examples/v1 · openapi.yaml
En el repositorio: una suite de conformidad para lanzar contra un servidor (conformance/) y un pequeño servidor de referencia que la supera (server/). Solo una implementación que la supere debería llamarse compatible con Lantern.
El primer cliente será PlayShelf, un gestor de paquetes homebrew para Nintendo Switch. PlayShelf
Para tus propios juegos
Lantern lleva lo que tiene tu servidor, entre él y tu consola. No busca nada ni distribuye nada: no es una forma de conseguir juegos, y sus servidores son para los juegos que posees.
Licencias
Libre de implementar
- CC BY 4.0El texto de la especificación: compártelo y adáptalo citando su origen.
- MITTodo lo demás (esquemas, descripción OpenAPI, ejemplos, suite de conformidad, servidor de referencia), para que cualquier servidor o cliente, con cualquier licencia, pueda implementar el protocolo y copiar sus esquemas tal cual.
Las preguntas, comentarios y propuestas van a las incidencias del repositorio.
Este sitio
Privacidad
Este sitio no usa cookies y solo guarda en tu navegador el idioma que eliges en su cabecera. No carga nada de otro sitio: sus fuentes, imágenes y scripts se sirven con él.
Cuenta sus visitas con Umami Cloud, en la Unión Europea (Fráncfort), sin cookies. Por cada página vista: la página, la página de la que vienes, tu navegador, sistema y tipo de dispositivo, el tamaño de tu pantalla, tu idioma y tu país. Tu dirección IP sirve para saber tu país y distinguir las visitas, y no se guarda con ellas. Los recuentos se conservan seis meses, solo se usan para saber qué se lee y nunca se venden ni se comparten. La política de Umami: umami.is/privacy.
Quién publica este sitio, quién lo aloja y cómo preguntar por tus datos: Privacidad y aviso legal
Léelo y cuéntanos
El borrador es el momento de cambiar cosas. Una incidencia sobre una ruta, un campo o un caso olvidado ayuda a todos los servidores y clientes que vendrán.