chio-conformance
Cross-language and cross-SDK conformance harness for the Chio protocol. The
crate is a small library (scenario loading, live-run orchestration, report
rendering) fronting a large integration and negative-conformance test suite
that drives the kernel, the reference peer SDKs, and other Chio crates
against the wire shape defined in spec/schemas/chio-wire/v1/ and
spec/PROTOCOL.md.
The crate is source-installable from the Chio repository and published to crates.io so external implementers can run the same scenarios without a full monorepo checkout. Its Chio dependency closure ships in the same aligned release train.
Responsibilities
- Load and validate JSON scenario descriptors and recorded results, failing
closed on missing directories, empty scenario sets, symlinked fixture
escapes, and malformed JSON (
load.rs). - Orchestrate a live cross-language run: locate or build the
chiobinary, spawnchio mcp serve-httpagainst a policy fixture and a mock upstream MCP server, drive peer client processes over remote HTTP, and collect their JSON results (runner.rs). Python and Node.js reference peers ship in the crate; Go and C++ peers build fromsdks/go/chio-goandsdks/cpp/chio-cppwhen run in-repo. - Drive native (non-MCP-wrapped) capability, delegation, receipt, DPoP, and
governed-transaction fixtures directly against kernel types over an
artifact,stdio, orhttpexecutor, with no MCP framing involved (native_suite.rs). - Parse and validate
peers.lock.toml, the pinned peer-binary release manifestchio conformance fetch-peersdownloads from (peers.rs). - Render the cross-language compatibility matrix and the native conformance
report as Markdown (
report.rs). - Host
verdict_matrix/, a 48-scenario corpus and diff oracle that asserts(verdict, reason_code, scope_set)equality between the in-process Rust kernel and external SDK/deployment-shape drivers. - Carry the negative-conformance and threat-model regression suite under
tests/, exercising production crates (chio-siem,chio-link,chio-anchor,chio-federation-transport-iroh, ...) directly as evidence that their fail-closed guarantees hold.
Public API
Library (src/lib.rs):
load_scenarios_from_dir,load_results_from_dir,LoadError- scenario and result loading.ScenarioDescriptor,ScenarioResult,CompatibilityReport, and their enums (ScenarioCategory,Transport,PeerRole,DeploymentMode,ResultStatus,RequiredCapabilities) - the scenario/result data model.default_run_options,run_conformance_harness,ConformanceRunOptions,ConformanceRunSummary,PeerTarget,ConformanceAuthMode,RunnerError- the live cross-language runner.
default_native_run_options,run_native_conformance_suite,NativeConformanceRunOptions,NativeConformanceRunSummary,NativeDriver,NativeScenarioDescriptor,NativeScenarioResult,fixture_messages_for_request- the native suite.generate_markdown_report- cross-language report rendering.peers::{PeersLock, PeerEntry, PeersLockError, default_peers_lock_path, sha256_hex, SUPPORTED_LANGUAGES}-peers.lock.tomlhandling.
Binaries (src/bin/):
| Binary | Purpose |
|---|---|
chio-conformance-runner |
Runs the live cross-language harness end to end. |
chio-conformance-report |
Renders a report from existing scenario/result directories. |
chio-native-conformance-runner |
Runs the native suite. |
chio-native-conformance-fixture |
Native fixture tool server (stdio or HTTP) that the native suite's stdio/http drivers talk to. |
Usage
use ;
let mut options = default_run_options;
options.peers = vec!;
let summary = run_conformance_harness?;
println!;
Feature flags
| Flag | Effect |
|---|---|
in-repo-fixtures (default) |
Resolves scenario and fixture paths against the Chio repository layout via default_repo_root(); falls back to the bundled crate-local tests/conformance/ tree when no monorepo root is found. |
chio-bbs |
Pulls in chio-selective-disclosure and chio-workflow to enable the BBS selective-disclosure conformance test. |
Testing
cargo test -p chio-conformance
Most tests/*_live.rs cases self-skip when their peer toolchain (node,
python3 >= 3.11 with chio-sdk-python, go, cmake) is not on PATH. The
verdict-matrix cross-language and deployment-shape drivers report every
scenario as unsupported without an operator-supplied
CHIO_VERDICT_MATRIX_SIDECAR_URL.
See also
chio-kernel- the request evaluator this suite verifies.chio-cli-chio conformance run/chio conformance fetch-peerswrap this crate's runner and peer-lock API.chio-control-plane- itscertifymodule builds signed certification artifacts from this crate's scenario/result loaders.docs/conformance.md- the standalone external-consumer flow.spec/PROTOCOL.md- the normative protocol this suite conforms to.