La evidencia, ejecutable
Cinco kits, escritos a ciegas, que coinciden.
Cada uno lo escribió un agente que solo tenía los documentos publicados y el verificador, y nunca otro kit. Cada kit pasa el verificador por sí solo, y cada pareja pasa en ambos sentidos. Esa es la afirmación de que los documentos están completos, y puedes ejecutarla tú mismo. Ninguno es una referencia.
Cinco kits, un lenguaje cada uno.
Cada uno es un ejemplo entre iguales. Ninguno es una referencia, una librería o un producto, y ninguno está pensado para importarse. El ANSWERS.md de cada kit es su respuesta a cada pregunta de KIT-SPEC.md.
Go
Go 1.27 · depende de the standard library
- Compilar
- tcp`, `http`, `ws
- Pruebas
- (cd go && go test ./...)
- Verificador
- node ../verifier/cli.js --cwd go -- go build -o stand .
Zig
Zig 0.16 · depende de the standard library and libc
- Compilar
- tcp
- Pruebas
- (cd zig && zig build test)
- Verificador
- node ../verifier/cli.js --cwd zig -- zig build
Python
Python 3.9 or later · depende de cryptography
- Compilar
- tcp`, `http
- Pruebas
- (cd python && python3 -m unittest discover -s tests)
- Verificador
- node ../verifier/cli.js --cwd python -- none
JavaScript
Node 24 · depende de Node's own modules
- Compilar
- tcp`, `http`, `ws
- Pruebas
- (cd javascript && npm test)
- Verificador
- node ../verifier/cli.js --cwd javascript -- none
Rust
Rust 1.98, edition 2021 · depende de the algorithms' crates
- Compilar
- tcp
- Pruebas
- (cd rust && cargo test)
- Verificador
- node ../verifier/cli.js --cwd rust -- cargo build
Una compilación se ejecuta dentro de la carpeta del propio kit. Las pruebas y el verificador se ejecutan desde la carpeta de ejemplos del repositorio.
Dos cualesquiera, juntos.
Dos kits cualesquiera uno contra otro, a través del proxy del verificador:
node ../verifier/cli.js --two -- "$PWD/go/stand" -- "$PWD/rust/target/debug/stand"Donde dos kits responden distinto y aun así se hablan, la diferencia es del kit, y Quo la permite.
El mundo.
Ocho escenas de los cinco kits hablándose, narradas: Alice y Bob, en ambos sentidos, un anillo por todos los kits, la malla de cada pareja, una recepción en la cabecera cero, un extraño probando cada puerta, una respuesta perdida por el camino y una tarjeta que dice dónde, alcanzada por su at sobre cada portador que dos kits comparten.
Cada pareja es un pliegue con una cabina en cada extremo, roja donde esa casa pide y morada donde responde, y el extraño que prueba cada puerta solo tiene hojas en blanco.
node world.mjsTodo a la vez, cada compilación, prueba, ejecución del verificador, pareja y el mundo:
node check.mjsNecesario, nunca suficiente.
Cada kit de aquí pasa el verificador por sí solo, y cada pareja pasa en ambas direcciones. Eso es necesario, y no dice nada sobre si un kit es bueno.