Skip to main content

Crate ripr

Crate ripr 

Source
Expand description

ripr is a static RIPR mutation-exposure analyzer for Rust workspaces.

It does not run mutants. It reads changed Rust code, creates mutation-shaped probes, and estimates whether tests appear to reach, infect, propagate, and reveal those changed behaviors through meaningful oracles.

§Library entry points

Most integrations should start with check_workspace to analyze a unified diff and obtain structured findings.

§Typical integration flow

  1. Build a CheckInput with repository root, target diff, and options.
  2. Call check_workspace to produce a CheckOutput report.
  3. For a specific probe id, call explain_finding to inspect evidence.
  4. Use collect_context when you need neighboring source context for UX.

The CLI wraps these same APIs and renders the resulting model in human, JSON, and annotation formats.

§Exposure language

ripr reports static exposure estimates such as ExposureClass::Exposed and ExposureClass::WeaklyExposed. Findings can also remain unknown when static evidence is incomplete. These results are intended to guide targeted test intent, not to claim runtime mutation outcomes.

§Quick start

use ripr::{CheckInput, check_workspace};
use std::path::PathBuf;

let report = check_workspace(CheckInput {
    root: PathBuf::from("."),
    ..CheckInput::default()
})?;

println!("findings: {}", report.findings.len());

Re-exports§

pub use app::CheckInput;
pub use app::CheckOutput;
pub use app::check_workspace;
pub use app::collect_context;
pub use app::explain_finding;
pub use domain::ExposureClass;
pub use domain::Finding;
pub use domain::Probe;
pub use domain::ProbeFamily;
pub use domain::RiprEvidence;

Modules§

analysis
Static analysis pipeline: diff loading, syntax indexing, probe generation, and finding classification.
app
Public application orchestration and library-level use cases.
cli
Command-line adapter layer for the ripr binary.
domain
Core domain model for probes, RIPR evidence, and exposure classes.
lsp
Experimental language-server sidecar adapter.
output
Output renderers for human-readable, JSON, and annotation formats.