cargo-impish 0.6.1

The Contract gate for Rust, after Impatient Programming
cargo-impish-0.6.1 is not a library.

impish

The Contract gate for Rust, after Impatient Programming. A sibling of flinch (Go) and covenant (Elixir).

A Contract is what a crate promises: numbered obligations, each proved by a tagged contract test. impish fails the build when the Contract stops being true.

impish's own coverage is published in the summary of every CI run.

Install

cargo install cargo-impish

Then run it as cargo impish. Contract tests use the impish crate's attribute, so add it as a dev-dependency:

[dev-dependencies]
impish = "0.6"

Every merge that changes what ships is a release, published to crates.io and listed under releases.

cargo impish check holds the Contract to its tests. cargo impish mutate <primitive> checks that those tests have teeth: it breaks the code the primitive covers with cargo-mutants and fails on an obligation whose tests catch none of the breaks.

Contributing

ARCHITECTURE.md says where each part lives and which guardrails fire on a change; docs/decisions says why.