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
- Build a
CheckInputwith repository root, target diff, and options. - Call
check_workspaceto produce aCheckOutputreport. - For a specific probe id, call
explain_findingto inspect evidence. - Use
collect_contextwhen 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§
- Check
Input - Analyze a workspace diff using the default RIPR static pipeline.
Input contract for
check_workspace. - Check
Output - 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.
- Ripr
Evidence - Domain model types exposed as part of the stable public contract.
Enums§
- Exposure
Class - Domain model types exposed as part of the stable public contract.
- Probe
Family - 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.