Certification kit
The contract is only real if independent hosts agree byte-for-byte. The conformance kit turns that from a discipline into a gate: implement the wire contract, run the kit over the shared corpus, and get a pass/fail report that names the first differing byte.
The gate – one leg per codec host
The kit pins each codec host to the corpus (which is the F# reference's canonical output). Each leg proves one host equals the corpus; together they prove the hosts equal each other.
| Leg | Runner | Proves |
|---|---|---|
| A – F# | dotnet run --project fuaran-dotnet/src/Fuaran.UI.JsonDecode.Tests -c Release | the current F# encoder/decoder re-produces the committed corpus byte-for-byte, and every payload is schema-valid ⇒ F# == corpus |
| B – TypeScript | node cross-host-conformance.mjs | the TypeScript @fuaran-ui/ops codec re-encodes the corpus byte-identical to the F# form and schema-valid (Draft 2020-12) ⇒ TS == corpus – with generative legs (C/D) round-tripping property-generated trees F#→TS and TS→F# |
| E – Python | python -m pytest in fuaran-py/ | the fuaran_py codec re-encodes byte-identical, surfaces the canonical reject code + path, and matches the canonical float layout ⇒ Python == corpus |
| Go | the conformance suite in fuaran-go/conformance/ | the Go codec round-trips the same corpus byte-identical ⇒ Go == corpus |
| Rust | cargo test (fuaran-rs/tests/conformance.rs) | the Rust codec round-trips the same corpus byte-identical ⇒ Rust == corpus |
X == corpus for every leg ⟹ F# == TS == Python == Go == Rust, byte-for-byte.
A one-byte divergence in any host's encoder fails its leg – naming the fixture, the
host, and the first differing byte – so a wire divergence is un-mergeable, not discipline-maintained.
The native Swift and Kotlin surfaces carry no codec leg: they ride the certified Rust codec and are held instead to render-coverage over the node set – see hosts for the surface-kind distinction.
Certifying a new host
The kit is language-agnostic: a third-party host certifies through a small stdio bridge (JSON in / JSON out) and receives the same report the reference hosts do – the Python leg's kit bridge is the worked proof. Implement the codec, decode and re-encode every corpus fixture, assert byte-equality and the expected reject codes, and the kit issues the report.
Certified hosts are listed on the hosts page.