Skip to content
pathofharmonyPublic

About

RustyKID (Rusty Data Quality & Insight Dashboard) is a Rust-first data quality and pipeline observability toolkit with Python integration.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

RustyKID

Social preview

RustyKID (Rusty Data Quality & Insight Dashboard) — production 2.0 Rust toolkit for data profiling, quality rules, drift detection, PII masking, Great Expectations interop, batch runs, TUI, and HTTP API. Reports contain aggregate metrics only (no sample values in exports).

Repository: github.com/pathofharmony/RustyKID · Release notes: docs/RELEASE-2.0.md · Roadmap: docs/PROJECT-ROADMAP.md

Crates

Crate Role
rustykid-core Types, errors, ScanLimits
rustykid-profiler CSV / JSONL / Parquet profiling; optional Polars / DataFusion
rustykid-rules DQ rules, schema/numeric drift, GE import/export
rustykid-masking PII detect & mask (redact, HMAC hash, fake)
rustykid-observability Pipeline events & metrics
rustykid-cli rustykid binary
rustykid-tui rustykid-tui interactive dashboard
rustykid-server rustykid-server HTTP + web UI
rustykid (python) PyO3 bindings; see rustykid-py/

Quick start

cargo build --release
cargo test --workspace

./target/release/rustykid scan --dataset demo --input examples/sample.csv --format json
./target/release/rustykid-server --bind 127.0.0.1:8080

More examples: examples/README.md.

CLI (common)

cargo run -p rustykid-cli -- scan --dataset demo --input examples/sample.csv --format markdown
cargo run -p rustykid-cli -- check --dataset demo --rules rules.json --format markdown
cargo run -p rustykid-cli -- export-ge --rules rules.json --suite-name demo.orders --output ge_suite.json
cargo run -p rustykid-cli -- import-ge --suite ge_suite.json --output rules-from-ge.json
cargo run -p rustykid-cli -- run-batch --manifest examples/batch-manifest.json --output batch-report.json
cargo run -p rustykid-cli -- row-freshness --baseline-profile baseline.json --input current.csv --min-row-ratio 1.0

Optional caps: --max-rows, --max-bytes (unbounded by default).

HTTP

cargo run -p rustykid-server -- --bind 127.0.0.1:8080
curl -s http://127.0.0.1:8080/health
curl -s http://127.0.0.1:8080/metrics
curl -s http://127.0.0.1:8080/openapi.json
open http://127.0.0.1:8080/

Optional: RUSTYKID_API_KEY, RUSTYKID_RATE_LIMIT_PER_MIN, cargo run -p rustykid-server --features otlp + OTEL_EXPORTER_OTLP_ENDPOINT.

TUI

cargo run -p rustykid-tui -- --input examples/sample.csv --dataset demo
cargo run -p rustykid-tui -- --smoke --input crates/tui/tests/fixtures/sample.csv --dataset ci.smoke

Keys: j/k navigate, Tab views, f failed-only, s export, q quit.

Python

cd rustykid-py && maturin develop --features pyo3
python -c "import rustykid; print(rustykid.scan('id\n1\n', dataset='demo')['row_count'])"

Docker

docker build -t rustykid:2.0 .
docker run --rm rustykid:2.0 scan --dataset docker.demo --input /opt/rustykid/examples/sample.csv --format json

See docs/docker.md, docs/k8s-batch.md.

Security

  • #![forbid(unsafe_code)] workspace-wide
  • Profiler exports: aggregates only
  • Set --max-rows / --max-bytes in untrusted environments (defaults are unbounded)
  • CI: cargo deny, cargo audit, cargo-udeps (see .github/workflows/ci.yml)

Validation

cargo fmt --all --check
cargo test --workspace
cargo clippy --workspace --all-targets -- -D warnings

About

RustyKID (Rusty Data Quality & Insight Dashboard) is a Rust-first data quality and pipeline observability toolkit with Python integration.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages