Skip to main content

ETLantic logo

ETLantic

One typed pipeline model. Many execution backends.
Typed contracts. Deterministic plans. Pluggable execution.

CI status PyPI version Supported Python versions Project status: beta MIT license

Quickstart · Documentation · Is ETLantic for me? · Python API · CLI


Incompatible Load wiring fails validate with PMPIPE210 before any successful write (data/out.json stays untouched until you restore Load[Row]). Try the Quickstart aha:

python -m etlantic validate pipeline.py:SamplePipeline --profile development
# → PMPIPE210: … expects Other … received Row …

ETLantic gives Python data pipelines one portable, typed logical model. It coordinates contracts, transformations, and topology without replacing the tools that execute them. Before execution reaches a write, ETLantic checks wiring, contract compatibility, backend capabilities, and plugin trust, then produces a deterministic plan for local engines, backend plugins, or external orchestrators.

It is not a dataframe engine, warehouse transformation system, or scheduler. ETLantic coordinates those tools through one typed logical model.

Python types + pipeline topology
              │
              ▼
      validate before write
              │
              ▼
   deterministic, secret-free plan
              │
       ┌──────┼────────┐
       ▼      ▼        ▼
      run   compile  generate

Five-minute quickstart

ETLantic requires Python 3.11 or newer. Create and activate a virtual environment outside the project that ETLantic will generate.

macOS or Linux:

python -m venv .venv
source .venv/bin/activate

Windows PowerShell:

py -m venv .venv
.\.venv\Scripts\Activate.ps1

Then install ETLantic and initialize a fresh project directory:

python -m pip install --upgrade pip
python -m pip install 'etlantic==0.39.0'
python -m etlantic --version

mkdir my-pipeline
cd my-pipeline
python -m etlantic init --with-toml
python -m etlantic validate pipeline.py:SamplePipeline --profile development
python -m etlantic run pipeline.py:SamplePipeline --profile development

Inspect the result:

cat data/out.json

Or, in PowerShell:

Get-Content data\out.json

You should see a succeeded run and two JSON rows for Ada and Grace.

Command What it proves
init Creates an import-safe pipeline, profile, sample data, and workspace
validate Checks topology, contracts, capabilities, configuration, and trust without running transforms
run Validates, plans, executes, and records a structured run report

Continue with the full Quickstart to see ETLantic reject an incompatible contract before a write, then build your first transformation.

Why teams use ETLantic

  • Fail before side effects. Catch invalid graph wiring, incompatible contracts, missing engine capabilities, and plugin-trust failures before publication.
  • Review what will run. Produce deterministic plans that can be inspected, fingerprinted, diffed, and retained as build evidence.
  • Keep contracts at every boundary. Apply the same typed expectations to extracted inputs, transformation outputs, engine transitions, and loads.
  • Separate intent from execution. Keep one logical pipeline while plugins own Polars, Pandas, SQL, and PySpark execution or Airflow compilation.
  • Adopt incrementally. Start with local Python and JSON files, then install only the engines and integrations you need.
  • Automate enforcement. Emit human, JSON, or SARIF diagnostics for local development and CI.

Cross-engine execution is explicit rather than magical: each transformation needs either an implementation for the selected backend or a portable transformation supported by that backend's compiler.

Where ETLantic fits

If your primary need is… Start with… Add ETLantic when you need…
Warehouse-only SQL transformation dbt Typed Python pipelines across additional engines
Durable scheduling and operations Airflow, Dagster, or Prefect Contract validation and deterministic plans before orchestration
Dataframe or table validation Pandera or Great Expectations Pipeline topology, capability, and publication-boundary validation
Typed multi-engine pipeline coordination ETLantic A validation-first logical model with pluggable execution

Read the full comparison guide before adopting ETLantic as a replacement for an existing tool. It is usually a complementary control layer.

Choose an execution path

Core installs without dataframe engines, database drivers, Spark, Airflow, or Prefect. Add only what the pipeline uses. The middle column describes the capability shipped in 0.39, not future roadmap intent.

Capability 0.39 Install
Local Python + JSON/CSV Built-in first-success and test path pip install etlantic
Polars Eager/lazy dataframe execution and portable compilation pip install 'etlantic[polars]'
Pandas Eager dataframe execution and portable compilation pip install 'etlantic[pandas]'
SQL SQLite evaluation path and PostgreSQL reference execution pip install 'etlantic[sql]'
PySpark Batch Spark execution; requires a compatible JVM pip install 'etlantic[pyspark]'
Airflow Compile plans to DAG modules; Apache Airflow is installed separately pip install 'etlantic[airflow]'
Prefect Local direct-execution scheduler integration pip install 'etlantic[prefect]'
OS keyring Runtime secret-provider integration pip install 'etlantic[keyring]'
SQLModel SQLModel-to-contract bridge helpers pip install 'etlantic[sqlmodel]'
OpenTelemetry Observability API integration pip install 'etlantic[observability]'
Medallion pipelines Bronze/silver/gold facade outside ETLantic core pip install medallantic

For controlled deployments, pin core and every official plugin to the same tested release. See engine selection, compatibility, and optional packages.

Structured Streaming and etlantic-datafusion are experimental. The FastAPI package is a thin reference adapter, not a production control plane.

The authoring model

ETLantic pipelines have four public building blocks:

Building block Responsibility
Data Typed dataset contract
Transformation Typed inputs, outputs, parameters, and implementations
Extract / Load External read and publication boundaries
Pipeline Declarative topology with validate, plan, and run

Application code should prefer the curated facade:

import etlantic as etl

Pipelines can be authored as typed classes or with functional builders and versioned PipelineDefinition JSON. Start with the generated project above; then use the SDK tutorial or programmatic authoring guide.

Contracts as build artifacts

Generate a reviewable contract bundle only after the pipeline validates:

python -m etlantic validate pipeline.py:SamplePipeline --format json
python -m etlantic generate pipeline.py:SamplePipeline -o contracts/
contracts/
├── data/              # data contracts
├── transformations/   # transformation contracts
└── pipelines/         # pipeline topology contract

ETLantic integrates with the Open Data Contract Standard (ODCS), Data Transformation Contract Standard (DTCS), and Data Pipeline Contract Standard (DPCS). Generation is deterministic and refuses invalid pipelines.

Security and production posture

ETLantic is currently Beta. It is suitable for documented, controlled, single-tenant pilots—not unrestricted enterprise production.

Boundary Current posture
Plans and reports Carry secret references, never resolved secret values
Production plugin trust security_mode="production" requires an explicit non-empty plugin_allowlist
Plugin isolation Allowlists control selection; they are not a sandbox
Schema history Stores fingerprints and metadata, never source rows
Deployment Application-owned process, storage, network, recovery, and isolation controls
Not included Managed runtime, multi-tenant control plane, formal SLA, or compliance certification

Use separate processes or stronger infrastructure boundaries for distinct tenants and trust domains. Before a pilot, review:

Common workflows

# Inspect the logical graph
python -m etlantic inspect pipeline.py:SamplePipeline --format json

# Resolve a deterministic plan
python -m etlantic plan pipeline.py:SamplePipeline \
  --profile development --format json

# Emit SARIF for CI
python -m etlantic validate pipeline.py:SamplePipeline \
  --profile development --format sarif

# Compile through the optional Airflow package
python -m etlantic compile pipeline.py:SamplePipeline \
  --profile development --target airflow -o dags/

# Inspect durable run reports
python -m etlantic report list

The public CLI also includes doctor, profile, diff, plugin, schema, reliability, and viz. See the CLI reference for exit codes and mutation behavior.

Documentation

Goal Start here
Get a first success Quickstart
Decide whether ETLantic fits Compare
Choose an engine Engine selection
Learn the architecture Architecture
Use the Python SDK API reference
Operate a controlled pilot Production readiness
Review future direction Planning Hub
Build a plugin Plugin SDK
Troubleshoot a failure Troubleshooting
Upgrade safely Upgrade hub

Repository examples require a clone and are not included in the wheel. Pip users should begin with etlantic init; contributors can use examples/ after uv sync --locked.

Contributing and support

Contributions are welcome. Start with CONTRIBUTING.md for setup, test scopes, documentation checks, and pull-request expectations.

ETLantic is available under the MIT License.

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.39.0.tar.gz (840.5 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.39.0-py3-none-any.whl (555.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: etlantic-0.39.0.tar.gz
  • Upload date:
  • Size: 840.5 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.39.0.tar.gz
Algorithm Hash digest
SHA256 24ce5b6a176992b28c5dfa3adbed72be3b4e7c0033784b1c4b7b1033077887c5
MD5 25f9ed598371602dbd7dbce6a660d3bf
BLAKE2b-256 238823ac61c54c732d96f80700ae86ed80328cda54156ab7ae34c220c8886874

See more details on using hashes here.

File details

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

File metadata

  • Download URL: etlantic-0.39.0-py3-none-any.whl
  • Upload date:
  • Size: 555.7 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.39.0-py3-none-any.whl
Algorithm Hash digest
SHA256 14d70f1dee2940cae2e4180de76a03ca6387812e89bdf75c426d472f18ff0da9
MD5 8f02c0cdb0da1e862c0d7163d57ec31d
BLAKE2b-256 7bfec79c667ef80bf587a93da18be46f06aeb7da44db52a98934931860cea1b4

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

This release

0.39.0 This release

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

0.22.0

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