Esc
Start typing to search...
Alpha v0.0.19

Data contracts enforced at compile time

Fast, type-safe data pipelines with built-in lineage and compliance. Schemas validated before your code runs, errors caught before production.

keel
Copied!

Four Pillars of Data Reliability

Data Contracts at Compile Time

CSV, Parquet, and JSON schemas validated when you compile, not when you run. Data contracts enforced by the type system, not by documentation.

Compile-Time Column Safety

Reference a column that doesn't exist? The compiler tells you before deployment. Schema drift caught immediately with helpful 'Did you mean?' suggestions.

Automatic Data Lineage

Every transformation tracked automatically. Full data provenance from source to result without writing extra code or using external tools.

Built for Compliance

Automatic audit trails for SOC2, GDPR, and financial regulations. Lineage tracking provides transparency for regulatory requirements.

Code Examples

keel
Copied!
Run
-- Type-safe column operations validated at compile time
import DataFrame
import DataFrame.Expr as Expr

let sales = DataFrame.readParquet "public/data/sales.parquet"

-- Type-safe transformations - compiler validates column names and types
sales
    |> DataFrame.filterGt "amount" 500
    |> DataFrame.withColumns
        [ Expr.col "amount" |> Expr.mul (Expr.lit 0.08) |> Expr.named "tax"
        , Expr.col "amount" |> Expr.add (Expr.col "tax") |> Expr.named "total"
        ]
    |> DataFrame.select ["transaction_id", "amount", "tax", "total"]

-- Schema drift caught at compile time, not in production

Who Uses Keel

Built for teams that need data contracts, lineage, and compliance.

Data Engineers

Build data pipelines with data contracts enforced at compile time. Schema changes detected immediately, not in production.

Financial Services

SOC2 and regulatory compliance with automatic audit trails. Full data lineage for transaction processing and risk calculations.

Healthcare & Life Sciences

HIPAA and GDPR compliance with provenance tracking. Every transformation documented for regulatory audits.

Data Governance Teams

Enforce data quality with compile-time validation. Data contracts prevent schema drift and ensure downstream reliability.

Data Contracts: Compile Time vs Runtime

Keel validates data contracts at compile time, catching issues before deployment rather than in production.

FeatureKeelPython/PandasdbtGreat Expectations
Data ContractsCompile-time (enforced by compiler)Runtime (manual checks)Test-time (separate layer)Runtime (validation library)
Schema ValidationAutomatic at compileManual (try/except)YAML definitions + testsPython schemas + validation
Column SafetyType-checked before runKeyError at runtimeSQL compilationRuntime assertions
Data LineageBuilt-in automaticManual trackingMetadata in dbt docsSeparate expectation history
When Errors FoundBefore deploymentIn productionCI/CD pipelineIn production
PerformanceOptimized executionInterpreted overheadSQL engine dependentPython runtime

Installation

bash
Copied!
# Run directly without installing
nix run git+https://codeberg.org/Keel/keel-cli

# Or build the package
nix build git+https://codeberg.org/Keel/keel-cli

# Enter a development shell
nix develop git+https://codeberg.org/Keel/keel-cli

Prerequisites: Rust 1.70+ and Cargo (for building from source) or Nix with flakes enabled (for Nix installation)

Roadmap

What's coming next for Keel.

Core Language

Completed

Type system, pattern matching, modules, REPL

Standard Library

In Progress

Collections, I/O, networking, concurrency primitives

Package Manager

In Progress

Dependency resolution, versioning, registry

GPU Backend

Planned

CUDA and HIP support for parallel computation

DataFrame Library

Completed

Polars-backed columnar data with window functions, schema validation, and metadata

ML Framework

Planned

Automatic differentiation and neural networks

Frequently Asked Questions