Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

Roadmap

The canonical, detailed roadmap lives in ROADMAP.md inside the datarust-profile crate. This page gives a higher-level tour of why each phase is ordered the way it is, and what it unlocks.

The destination

datarust-profile is heading toward v1.0: a complete one-line data-profiling and data-quality toolkit for the datarust ecosystem — zero external dependencies by default, reusing datarust::stats for the numerical kernels, owning the interpretation layer (summaries, flags, reports).

Where we are — v0.3.0

Pairwise relationships & interaction analysis landed: Pearson correlation matrix, Cramér’s V categorical association, point-biserial correlation, target-leakage detection hints (profile_table_with_target), correlation heatmaps in the HTML report, and two new data-quality checks (HighCorrelation, TargetLeakage). Eight quality checks now run out of the box.

The release track

v0.3 — Relationships & interaction (Shipped)

Columns in isolation miss collinearity, redundant features, and leakage risk. v0.3 introduced pairwise and dataset-wide relationship analysis, reusing datarust::stats’s correlation matrix, plus a pure-Rust Cramér’s V for categorical pairs and point-biserial correlation for binary categorical ⇄ numeric pairs. A target-leakage hint flags features highly correlated with a designated target column, and correlation heatmaps are rendered in the HTML report.

v0.4 — Data loading & ergonomics

Meet the user at the file, not the in-memory Matrix. A csv feature adds one-call profiling from a path, a cli binary generates reports from the shell, and a streaming single-pass mode profiles large files without holding them in memory.

v0.5 — Missingness & comparison

Promote missing values from a count to a structured analysis (which columns go missing together), and add dataset comparison: schema diff plus per-column distributional drift (population stability index), the backbone of production data monitoring.

v0.6 — Text & semantics

Richer categorical profiling: string-length distributions, casing/format flags that catch silent duplicates ("USA" vs "usa "), and identifier-vs-feature scoring beyond the current binary NearUnique check.

v0.7 — Performance (In progress)

The hot paths are already competitive with the reference tools: row deduplication is hash-based instead of an O(n²) scan, categorical columns are gathered as borrowed &str slices (no per-cell String clones) with all infer/profile/relationships paths generic over T: AsRef<str>, missing detection no longer allocates, and Cramér’s V runs over pre-encoded integer codes. A criterion benchmark suite now guards throughput (profile_str_matrix 100 000 × 20: 269 ms → 132 ms). Remaining: a rayon feature for parallel per-column statistics.

v0.8 — Time series

Temporal structure is invisible to column-wise profiling. v0.8 adds datetime type inference, monotonicity and gap detection, autocorrelation at configurable lags, and seasonal-strength hints.

v0.9 — Extension & quality rules

A QualityCheck trait lets teams codify their own data contracts (uniqueness, allowed-value sets, ranges, regex patterns), serialised as a schema file and checked in CI with a non-zero exit code on failure.

v1.0 — Stability

Freeze the public API, version the JSON output schema, publish the SemVer stability statement, and document a full parity matrix against pandas describe / ydata-profiling.


For the granular deliverables and the explicit out-of-scope list, see the canonical roadmap on GitHub.