Der Beleg, ausführbar
Fünf blind geschriebene Kits, die übereinstimmen.
Jedes wurde von einem Agenten geschrieben, der nur die veröffentlichten Dokumente und den Verifier hatte, und nie ein anderes Kit. Jedes Kit besteht den Verifier allein, und jedes Paar besteht in beide Richtungen. Das ist die Behauptung, dass die Dokumente vollständig sind, und Sie können sie selbst ausführen. Keines ist eine Referenz.
Fünf Kits, je eine Sprache.
Jedes ist ein Beispiel unter Gleichen. Keines ist eine Referenz, eine Bibliothek oder ein Produkt, und keines ist zum Importieren gedacht. Die ANSWERS.md jedes Kits ist seine Antwort auf jede Frage von KIT-SPEC.md.
Go
Go 1.27 · hängt ab von the standard library
- Build
- tcp`, `http`, `ws
- Tests
- (cd go && go test ./...)
- Verifier
- node ../verifier/cli.js --cwd go -- go build -o stand .
Zig
Zig 0.16 · hängt ab von the standard library and libc
- Build
- tcp
- Tests
- (cd zig && zig build test)
- Verifier
- node ../verifier/cli.js --cwd zig -- zig build
Python
Python 3.9 or later · hängt ab von cryptography
- Build
- tcp`, `http
- Tests
- (cd python && python3 -m unittest discover -s tests)
- Verifier
- node ../verifier/cli.js --cwd python -- none
JavaScript
Node 24 · hängt ab von Node's own modules
- Build
- tcp`, `http`, `ws
- Tests
- (cd javascript && npm test)
- Verifier
- node ../verifier/cli.js --cwd javascript -- none
Rust
Rust 1.98, edition 2021 · hängt ab von the algorithms' crates
- Build
- tcp
- Tests
- (cd rust && cargo test)
- Verifier
- node ../verifier/cli.js --cwd rust -- cargo build
Ein Build läuft im eigenen Ordner des Kits. Die Tests und der Verifier laufen aus dem Beispielordner des Repositorys.
Je zwei, zusammen.
Je zwei Kits gegeneinander, über den Proxy des Verifiers:
node ../verifier/cli.js --two -- "$PWD/go/stand" -- "$PWD/rust/target/debug/stand"Wo zwei Kits verschieden antworten und trotzdem miteinander sprechen, ist der Unterschied Sache des Kits, und Quo erlaubt ihn.
Die Welt.
Acht erzählte Szenen, in denen die fünf Kits miteinander sprechen: Alice und Bob in beide Richtungen, ein Ring durch jedes Kit, das Netz aller Paare, ein Empfang am Null-Kopf, ein Fremder, der jede Tür versucht, eine unterwegs verlorene Antwort und eine Karte, die sagt wo, erreicht über ihr at auf jedem Carrier, den zwei Kits teilen.
Jedes Paar ist eine Falte mit einer Kabine an jedem Ende, rot, wo dieses Haus fragt, und violett, wo es antwortet, und der Fremde, der jede Tür versucht, hält nur leere Blätter.
node world.mjsAlles auf einmal, jeder Build, Test, Verifier-Lauf, jedes Paar und die Welt:
node check.mjsNotwendig, nie hinreichend.
Jedes Kit hier besteht den Verifier allein, und jedes Paar besteht in beide Richtungen. Das ist notwendig, und es sagt nichts darüber, ob ein Kit gut ist.