No. ValidateX is 100% open-source and executes completely locally or within your private cloud/VPC environment. No dataset rows or sensitive telemetry are ever transmitted outside your network.
ValidateX supports four execution engines:
- Pandas (Default, zero-copy for in-memory DataFrames)
- Polars (High-performance multi-threaded Rust engine)
- PySpark (Distributed Big Data cluster execution)
- Push-Down SQL (Native SQLAlchemy queries for Postgres, Snowflake, BigQuery, and DuckDB)
ValidateX computes a weighted score between 0 and 100 based on expectation severity:
- 🔴 Critical (×3 weight): Null checks, uniqueness, column existence, row count.
- 🟡 Warning (×2 weight): Range bounds, regex patterns, set membership.
- 🔵 Info (×1 weight): Mean/stdev statistical checks, string lengths.
Score = 100 × (weighted_passed / weighted_total)
Yes! ValidateX includes a built-in GitHub Action (kaviarasanmani/ValidateX@main) and CLI command (validatex validate) that exits with code 0 on success and 1 on failure, making it ideal for gating deployments.
You can pass --slack-webhook or --teams-webhook to the CLI or call .send_slack() / .send_teams() on any ValidationResult. Notifications format rich Block Kit (Slack) or MessageCard (Teams) alerts with score breakdowns and failure details.
Yes. Decorate any class with @register_expectation and inherit from Expectation. You can implement _validate_pandas and _validate_polars hooks to add custom business logic.