Open source
Safety-critical,
in public.
The entire platform — checker, runtime, proofs, safety case drafts, even the hardware bring-up runbooks — is developed in one public repository. Openness is a safety property here: an envelope you can read is an envelope you can challenge.
Quickstart
Three commands to a governed fleet
# clone and run the full test suite
git clone https://github.com/kirra-systems/kirra-runtime-sdk
cd kirra-runtime-sdk
cargo test --workspace
# bring up verifier + dashboard (+ optional HA standby)
KIRRA_ADMIN_TOKEN=change-me docker compose up
# watch the posture stream
curl -N localhost:8090/system/posture/stream \
-H "authorization: Bearer change-me" \
-H "x-kirra-client-id: dev"
What you're running
A Cargo workspace of 36 crates plus the separate parko ML workspace — pinned toolchain
1.94.1, MSRV 1.88 enforced in CI, reproducible builds. The verifier binds on port 8090 with a
fail-closed admin token: absent or empty means 503, never open.
Deployment paths
Docker (digest-pinned, cosign-signed images), Helm chart, systemd units for bare metal — including the on-robot installer that turns a fresh Jetson into a governed vehicle — and a one-line installer for x86_64 / aarch64 / armv7.
Host-measured, not certified: these are regression tripwires gated on p99.9 in CI, not a WCET claim. Certified worst-case timing is defined as QNX-target-under-FIFO and hasn't been produced yet — the repository says so, and so do we. The full timing story →
Developer orientation
Find your way around in five minutes
The tree is organized by trust, not by feature — knowing that makes the whole repository legible.
| Path | What lives there |
|---|---|
| crates/ | The checker & platform — trajectory validation, planner, maps, transports, OTA |
| src/ | The verifier control plane — posture, attestation, audit, HTTP service |
| parko/ | Separate ML workspace — inference backends, diverse second governor |
| verification/ · fuzz/ | Kani proofs over shipped source; standing fuzz targets |
| tools/ | Isolated spikes — iceoryx2 carrier, QNX shim/judge harness |
| robot/ · firmware/ | The physical R2 testbed scripts and clean-room MCU firmware |
| docs/ | 36 ADRs, 65 safety artifacts, hardware runbooks, specs |
Runnable demonstrations
The in-line governor demo drives the full read→decide→sign→verify→release loop across a real process boundary; the CARLA client runs the governor against a simulator; the proposal bench sweeps a live governor with hostile proposals and prints its verdicts. Or skip the terminal entirely: the Verdict Playground runs the frozen checker in your browser.
crates/kirra-inline-governorsrc/bin/kirra_carla_client.rscrates/kirra-proposal-bench
APIs & examples
cargo doc --open builds the full API reference (deny-warnings enforced). The governor
quickstart example and the C SDK example both build and run in CI, so they're never stale.
Contributing
The gates protect the safety case — including from us
Every PR faces the same 27 blocking lanes: tests, Miri, Loom, Kani mirrors, fuzz builds, mutation testing on checker diffs, coverage floors, clippy at deny-warnings, formatting, supply-chain audit, and the invariant checks that have rejected real attempts to weaken attestation and auth. The security invariants are documented precisely so a reviewer can reject a violation on sight.
Quality guardrails
Per-file line budgets, panic/unwrap/expect budgets, orphan-core detection, and a purity gate that keeps crypto, clocks, and allocation out of the verdict core — all scripted, all blocking.
ci/check_quality_guardrails.pyci/check_verdict_core_purity.py
Docs that must compile
cargo doc runs at deny-warnings, the C SDK examples build and run in CI, and the governor
quickstart example is executed — documentation drift fails the build.
Report a vulnerability
Coordinated disclosure with a 48-hour first response. If you can get an unsafe command past the checker, we want the writeup more than you do.
READ THE SOURCE
Star it, break it, or ship on it.
kirra-runtime-sdk is one clone away — and the CI badge means more here than most places.