# model-checking/kani

Kani Rust Verifier

Repository: https://github.com/model-checking/kani
Canonical: https://ross.abutalabs.com/products/kani
Homepage: https://model-checking.github.io/kani
Language: Rust
License: Apache-2.0
License Family: permissive
Topics: rust, model-checking, verification
Last push: 2026-08-26T21:25:29+00:00

## Health v2 (maintenance only)
Score: 83/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 99, release rhythm 54, longevity 100
- inputs: {"age_days": 1986, "days_push": 7, "days_rel": 229, "gap_med": 31.5, "n_releases_24m": 13}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 3342, forks 168 (observed 2026-08-28T04:07:56.929095+00:00)

## What it is
Kani is a bit-precise model checker for Rust that formally verifies safety and correctness properties of Rust programs. It uses proof harnesses with nondeterministic inputs to prove properties across all possible values, detecting undefined behavior, panics, and arithmetic overflows, especially in unsafe code.

## Use cases
- verify unsafe Rust code for undefined behavior
- prove that a function satisfies a specification for all inputs
- check for arithmetic overflows and panics in Rust code
- formally verify Rust library correctness with proof harnesses
- add formal verification to Rust CI pipelines
- find counterexamples where Rust code violates assertions

## When to choose
- you need mathematical proof that Rust code is correct for all inputs, not just tested cases
- you are writing unsafe Rust and want automated undefined-behavior checks
- you want property-based verification stronger than fuzzing or testing
- you want to verify function contracts and assertions exhaustively

## When to avoid
- your code relies heavily on concurrency, which Kani does not yet support
- you need fast runtime checks rather than potentially resource-intensive proofs
- your project uses very new Rust features not yet supported by Kani
- you only need simple unit or integration testing

## Facets
- artifact type: cli-tool
- maturity: active
- function: testing, fuzzing, security, developer-tools
- domain: developer-tools, programming-languages, testing, security
- platform: rust, cli
- tags: model-checking, formal-verification, rust-verifier, cbmc, undefined-behavior-detection, proof-harnesses, function-contracts, linux, macos

## Member repositories
- model-checking/kani (main) score 83

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:07:56.929095+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T18:41:03.599123+00:00, confidence not recorded.
  - readme: https://github.com/model-checking/kani (fetched 2026-08-28T04:07:56.929095+00:00, sha f00f4178c6a9)
  - homepage: https://model-checking.github.io/kani (fetched 2026-08-29T09:34:14.443304+00:00, sha d979bde7b46a)
  - registry_crates: https://crates.io/api/v1/crates/kani (fetched 2026-08-29T09:34:14.445725+00:00, sha dc36a214e690)
- Data as of 2026-08-30T08:39:29.467469+00:00.
