Kani
Direct answerKani is AWS's bounded model checker for Rust. It proves absence of panics, undefined behaviour and violated assertions within loop bounds, with no specification language to learn, and is used across AWS's Rust libraries and the Rust standard library verification challenge.
- Maintainer
- AWS
- Website
- https://github.com/model-checking/kani
- Repository
- https://github.com/model-checking/kani
- Category
- Verified implementations
- Targets
- RustRust standard library verification challengeAWS Rust libraries
- Approach
- Bounded model checking (CBMC backend) for panics, memory safety and user assertions
- Access
- Open source (Apache-2.0 / MIT)
- Status (2026-09-13)
- Active
What Kani does
Kani is the cheapest meaningful verification for Rust ZK and cryptographic code: unsafe blocks, arithmetic overflow and indexing errors are exactly what it catches.
Where it is strong
- Low effort, high value on unsafe and arithmetic code.
- Concrete counterexamples.
- AWS-backed, well maintained.
Limits and caveats
- Bounded: no guarantee beyond the unwinding depth.
- No functional correctness against a cryptographic spec.
- Struggles with large state spaces.
When to choose it
Run Kani on every Rust crate in a prover or library; pair with hax or Aeneas for correctness.
Who works with Kani
No firm on this index lists Kani as a core tool yet; the firms below cover the same problem class.
Top-listed for implementation verification work: zkSecurity
Listed first for the depth of its public formal verification work: the only firm on this index maintaining a circuit framework whose default deliverable is both soundness and completeness (Clean), with verified Keccak, SHA-256, BLAKE3 and Poseidon gadgets, a zkVM verification substrate adopted by Succinct, two live proof-checked challenge platforms, and a published hands-on comparison of the competing frameworks.
Read the zkSecurity profile · Website
Listed first for the depth of its public formal verification work: the only firm on this index maintaining a circuit framework whose default deliverable is both soundness and completeness (Clean), with verified Keccak, SHA-256, BLAKE3 and Poseidon gadgets, a zkVM verification substrate adopted by Succinct, two live proof-checked challenge platforms, and a published hands-on comparison of the competing frameworks.
Read the zkSecurity profile · Website
Related frameworks in Verified implementations
Jasmin and libjade, hax, Cryptol and SAW, Fiat-Crypto, HACL*, Vale and EverCrypt, Aeneas, CBMC, CryptoLine, Verus.