Skip to main content

ETLantic logo

ETLantic

Design once. Validate everywhere.
Typed, contract-driven data pipelines for Python.

CI PyPI Python versions MIT license Ruff

Documentation · Quickstart · Capabilities · Roadmap


ETLantic is a typed control layer for data pipelines. Define data, transformations, and topology as Python contracts; validate them before work begins; then run or compile the same logical pipeline for different backends.

Typed contracts ──▶ Validation ──▶ Deterministic plan ──▶ Run or compile

The name describes the model: ETL is the data flow; ETLantic surrounds it with typed contracts, validation, planning, and evidence.

V(model) → Extract → V(input) → Transform → V(output) → Load → V/evidence

Validation is a control layer, not another business transformation. Runtime checks are selected by policy and backend capability; publication evidence does not imply an automatic sink reread.

Why ETLantic?

  • Catch invalid wiring, incompatible contracts, missing capabilities, and untrusted plugins before a write.
  • Validate extracted inputs, transformation outputs, engine transitions, and publication boundaries against the same contracts.
  • Keep one logical pipeline across local Python, Polars, Pandas, SQL, PySpark, Airflow, and Prefect.
  • Review deterministic, secret-free plans and preserve structured diagnostics, lineage, schema observations, and run reports.
  • Install a small core and add only the engines you need.

ETLantic does not replace dataframe engines, databases, Spark, schedulers, storage systems, catalogs, or secret managers. It gives them one typed pipeline model and one inspectable validation lifecycle.

Status: ETLantic 0.22.0 ships a cohesive CLI journey with durable local workspaces. Stable for documented single-tenant reference deployments, not unrestricted enterprise production. Structured Streaming remains experimental. See Capabilities and Production readiness.

Quickstart

ETLantic requires Python 3.11 or newer.

pip install etlantic==0.22.0
etlantic --version

mkdir my-pipeline && cd my-pipeline
etlantic init --with-toml
etlantic doctor --profile development
etlantic validate pipeline.py:SamplePipeline --profile development
etlantic plan pipeline.py:SamplePipeline --profile development
etlantic run pipeline.py:SamplePipeline --profile development
cat data/out.json

You should see run status succeeded and JSON rows for Ada and Grace. The CLI defaults to development when --profile is omitted (or your project's default_profile). Prefer an explicit profile in scripts and CI.

Full walkthrough: Quickstart. Next: First Pipeline (evolve the generated project). From a checkout, an optional in-memory SDK demo is examples/memory_customers.py.

Engines and integrations

Integration Install Role
Polars etlantic-polars Eager/lazy dataframe execution and portable compilation
Pandas etlantic-pandas Eager dataframe execution and portable compilation
SQL etlantic-sql Parameterized relational execution and portable SQL compilation
PySpark etlantic-pyspark Spark execution and portable compilation
Airflow etlantic-airflow Compile plans into DAG artifacts
Prefect etlantic-prefect Direct-execution scheduler integration
Keyring etlantic-keyring OS keyring secret provider
SQLModel etlantic-sqlmodel SQLModel bridge helpers
SparkForge etlantic-sparkforge Medallion adapter (bronze/silver/gold stay out of core)
DataFusion etlantic-datafusion Experimental query engine stub (Gate B)

See Optional packages for observability (otel / observability extras) and Arrow helpers.

Matching extras such as etlantic[polars] are equivalent. Pin matching minors while ETLantic is pre-1.0. Airflow is compile-only and does not install Apache Airflow itself.

Architecture

ETLantic keeps logical meaning separate from physical execution:

Data (ODCS/ContractModel) + Transformation (DTCS) + Pipeline (DPCS)
                              │
                       validate and plan
                              ▼
                    secret-free PipelinePlan
                              │
                  ┌───────────┼───────────┐
                  ▼           ▼           ▼
               execute      compile     generate
                  │           │           │
                  └──── plugins and external systems

Plans and reports contain secret references, never resolved secret values. Production profiles require explicit plugin allowlists. Backend optimizations may change the physical graph but must preserve contracts, validation boundaries, security domains, and logical attribution.

Capability boundary

Capability 0.22
Cohesive CLI (init, doctor, durable reports) Available
Typed contracts, graph validation, deterministic planning Available
Local, Polars, Pandas, SQL, and PySpark execution paths Available
Portable compilers for Polars, Pandas, SQL, and PySpark Available
ODCS, DTCS, DPCS, schema drift, lineage, reports, and SARIF Available
Airflow compilation and Prefect scheduling Available
Versioned Polars↔Pandas tabular interchange Available
Contract and configuration freeze (deep plans, security_mode) Available
Trust, isolation, safe I/O, SBOM/attestations Available
Structured Streaming Experimental
etlantic-datafusion Experimental
Full multi-tenant control plane Not included

See the full Capabilities and Validation Everywhere guides for precise guarantees and limitations.

Learn more

Installation · Quickstart · Engine selection · Compare · Security · Roadmap · Contributing

MIT licensed.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

etlantic-0.22.0.tar.gz (467.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

etlantic-0.22.0-py3-none-any.whl (366.2 kB view details)

Uploaded Python 3

File details

Details for the file etlantic-0.22.0.tar.gz.

File metadata

  • Download URL: etlantic-0.22.0.tar.gz
  • Upload date:
  • Size: 467.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for etlantic-0.22.0.tar.gz
Algorithm Hash digest
SHA256 db13061f5dd310f4f63fb8252ecc40f18dceefbe56cdb60bfcfa1393eab2aa66
MD5 d49ede9a16d13de71151eddd87580d85
BLAKE2b-256 85f3a7c0a66c8ce12f8afe17bb4c1cc8e1b4c6d62ae19f0d66d1cc121c319206

See more details on using hashes here.

File details

Details for the file etlantic-0.22.0-py3-none-any.whl.

File metadata

  • Download URL: etlantic-0.22.0-py3-none-any.whl
  • Upload date:
  • Size: 366.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for etlantic-0.22.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3a66300a300f77501d3cfb5b70fc88b8e37e28e5dc748d0c5067da6689f88ad8
MD5 079992c9327b33bf44a1f2d899dd05ad
BLAKE2b-256 68328cc4ed52f3f7768c2df34d821b3e6553ed5df6c23d91437bd652a88c6f42

See more details on using hashes here.

Release history Release notifications | RSS feed

0.53.0

2 files

0.52.1

2 files

0.52.0

2 files

0.51.0

2 files

0.50.1

2 files

0.50.0

2 files

0.49.0

2 files

0.48.0

2 files

0.47.0

2 files

0.46.0

2 files

0.45.0

2 files

0.44.0

2 files

0.43.0

2 files

0.42.0

2 files

0.41.0

2 files

0.40.0

2 files

0.39.0

2 files

0.38.0

2 files

0.37.0

2 files

0.36.0

2 files

0.35.0

2 files

0.34.0

2 files

0.33.0

2 files

0.32.0

2 files

0.31.0

2 files

0.30.0

2 files

0.29.0

2 files

0.27.0

2 files

0.26.0

2 files

0.25.0

2 files

0.24.0

2 files

0.23.0

2 files

This release

0.22.0 This release

2 files

0.21.0

2 files

0.20.0

2 files

0.19.0

2 files

0.18.0

2 files

0.17.0

2 files

0.16.0

2 files

0.14.0

2 files

0.13.0

2 files

0.12.0

2 files

0.11.0

2 files

0.10.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page