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.

§Output and compatibility

CheckOutput and the domain re-exports in this crate are the intended integration surface for editor tooling, CI automation, and custom reporting. Prefer consuming these typed values over parsing CLI output so integrations remain resilient as human-readable formatting evolves.

§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());

Structs§

CheckInput
Analyze a workspace diff using the default RIPR static pipeline. Input contract for check_workspace.
CheckOutput
Analyze a workspace diff using the default RIPR static pipeline. Result payload produced by check_workspace.
Finding
Domain model types exposed as part of the stable public contract.
Probe
Domain model types exposed as part of the stable public contract.
RiprEvidence
Domain model types exposed as part of the stable public contract.

Enums§

ExposureClass
Domain model types exposed as part of the stable public contract.
ProbeFamily
Domain model types exposed as part of the stable public contract.

Functions§

check_workspace
Analyze a workspace diff using the default RIPR static pipeline. Runs the end-to-end static exposure analysis for a workspace.
collect_context
Analyze a workspace diff using the default RIPR static pipeline. Produces a compact JSON context packet for one selected finding.
explain_finding
Analyze a workspace diff using the default RIPR static pipeline. Computes findings and renders a single selected finding in human format.