Saltar al contenido

Un lenguaje hablado en bytes

Que un extraño pregunte a otro, y nadie en medio.

Dos programas que nunca se conocieron pueden hablar, y cada uno decide por sí mismo a quién deja entrar. Ningún servidor se interpone, no hay cuenta que abrir, y un extraño en la puerta no averigua nada. Quo es lo que significan los bytes: unas pocas formas JSON y seis algoritmos, y nada más.

  1. Te invitan. La tarjeta va por cualquier canal.
  2. Llamas. Te dejan entrar una vez, la primera clave muere, y nadie que vio la tarjeta puede hablar ahí.
  3. Pides. Sellado, bajo una clave que no deja de moverse.
  4. Un extraño lo intenta. Vuelve una hoja en blanco, envíe lo que envíe.
cualquier canal2un extrañotúellos

Cómo leer el dibujo

  • Una casa. El hueco de su anillo es el portero, su única puerta.
  • Una cabina roja. Esta casa tiene la llave y entra para preguntar.
  • Una cabina morada. La casa la construyó y regaló su llave.
  • La cabina gris. Cualquiera puede entrar, firmando con una llave propia.
  • Un extraño. Envíe lo que envíe, recibe la misma hoja en blanco.
01

Qué es Quo

Quo es lo que significan los bytes de una puerta: las formas JSON que lee y escribe, y seis algoritmos. Una frase le pertenece por una de dos razones.

entra · sale

Una puerta es una función

Entran bytes, salen bytes o nada. Quo es lo que significan esos bytes, y nada de lo que hay detrás de la puerta.

Dos extraños deben coincidir

Dos kits que nunca se conocieron no podrían intercambiar bytes correctamente si ambos no leyeran la frase del mismo modo.

≤ 1,048,576

Ningún kit puede aportarlo

Ningún kit podría aportarlo por sí mismo. Ningún kit puede decidir solo qué significa la semilla de otro, así que la derivación de la clave del ward es de Quo.

Lo que no cumple ninguna de las dos no es de Quo. Ni se pide ni se prohíbe.

El modelo es JSON: una gramática que cualquiera lee, sin opinión sobre lo que se escribe en ella. Todo lo que un kit podría decidir queda fuera, por sensato que sea.

Cada regla dice qué significan unos bytes. Ninguna regla dice que alguien deba hablar.

02

Qué no es Quo

Quo es el hueco en el muro y lo que lo cruza, y nada más.

not QuoQuo es la puerta

Solo la puerta

Lo que vive dentro del muro, y lo que transporta los bytes fuera de él, no son de Quo.

Sin runtime

Qué hay detrás de una puerta, quién es su dueño y cómo guarda, son cosa de cada kit.

{ ward, heir, secret, lock }

Sin cuenta

Una relación empieza con una invitación que va por cualquier canal, y no se registra nada.

no es de Quo

Sin directorio

El descubrimiento y la identidad quedan fuera de Quo. Una invitación puede decir dónde se alcanza su ward, una respuesta puede decir dónde se alcanza ahora, y Quo no lista ningún ward.

?

Sin consejos

Quo ofrece un comprobador, y nunca una forma de construir un kit.

Quo no aloja nada, no registra nada, no lista nada y no dirige nada. El día que opere un servicio, es un producto.

03

Qué prometen los bytes

Autenticidad

Cada petición y cada respuesta se firma y se comprueba contra los bytes tal como se recibieron. Más

lidheadbody: payloadsignature

Confidencialidad

Cada petición se sella para el candado del ward bajo una clave nueva, y cada respuesta solo para esa clave. El método, los argumentos y la respuesta viajan todos dentro de la caja. Más

{"silence":true}

Sin oráculo

El caso de cada extraño vuelve como una sola respuesta de una sola longitud, así que los bytes no distinguen nada. Más

next

Propiedad cuando la puerta elige ante la llamada

En cuanto una puerta elige ante la llamada, la relación pertenece a la clave que acuñó quien llamó, y nadie que vio la invitación puede hablar en ella. Más

04

Cinco kits, y ninguno es referencia

Go, Zig, Python, JavaScript, Rust. Cada uno se escribió en frío, por un agente que solo tenía los documentos publicados y el verificador, y nunca otro kit.

GoZigPythonJavaScriptRust
fiveEl muro y su hueco son iguales en todos los kits, porque eso es todo lo que dice Quo. Lo que vive dentro es propio de cada kit.

Cada kit pasa el verificador por sí solo, y cada pareja pasa en ambas direcciones.

La IA es el método, y la completitud es la prueba: kits escritos a ciegas coinciden.

Quo lo desarrolla, audita e implementa la IA bajo la decisión de una persona.

05

Dónde está

Un lenguaje en funcionamiento antes de 1.0.0, sin ningún despliegue en producción.

Lo mantiene Razvan Gherghina bajo Apache-2.0, y nadie externo lo ha auditado.

La spec se congela una vez, en 1.0.0.

Un fallo se comunica a spec@quo.systems