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.
- Use
check_workspacefor end-to-end analysis. - Use
explain_findingto retrieve focused evidence for one probe. - Use
collect_contextto retrieve neighboring context around a probe.
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
riprbinary. - 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.