.adapters
Two paths.
LimniFS is multi-language by design. Choose the path that fits your adapter's goals: spec-only for the true spec-first oracle (audit-friendly, no external deps); Rust FFI/WASM wrap for fast shipping (Rust's performance in every language). Conformance vectors are black-box and work identically for both.
Spec-only
Read SPEC.md. Implement the format in your target language. No LimniFS-supplied runtime; the spec is the contract. The Python reference reader is the canonical example.
- Python (reference)
- Ruby (community)
- TypeScript (community)
Rust FFI / WASM wrap
Wrap limnifs-core via FFI (Ruby via the ffi gem) or WASM (TypeScript via wasm-bindgen output). One Rust implementation; every language benefits from its performance and audit surface.
- Ruby (via ffi gem)
- TypeScript (via wasm-bindgen)
- C (direct extern)
.conformance · black-box protocol
Conformance vectors in limnifs/specwork via stdin/stdout: the harness feeds fixture bytes + operation script, the adapter produces outputs + identity hashes, the harness compares against the expected. Both adapter paths run through the same harness. Disagreement = spec gap, not adapter bug — until the spec is amended and the conformance suite updated.