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


ETLantic is a Python library for defining data pipelines as typed contracts and graphs, validating them before they run, and producing a deterministic plan that a plugin executes (local Python, Polars, Pandas, SQL, PySpark, DataFusion, or DuckDB) or an orchestrator compiles (Airflow). It is not dbt, not a dataframe engine, and not a hosted scheduler.

Quickstart

ETLantic requires Python 3.11 or newer. In an activated virtual environment:

python -m pip install etlantic
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

ETLantic 0.59.0 is the current Beta release candidate. The latest published and supported line remains 0.57.x. The run should succeed and write Ada and Grace to data/out.json. Until publication, pip install etlantic installs the latest published 0.57.x package. See the full Quickstart for setup details and expected output.

If init refuses the directory, use an empty folder (or --force only after you have reviewed what it overwrites). Pin every official plugin to the same version as core (etlantic-polars with etlantic). Mixed plugin versions fail closed — see Troubleshooting.

What it provides

  • Typed Data, Transformation, Extract, Load, and Pipeline building blocks.
  • Validation before execution or publication, with human, JSON, and SARIF diagnostics.
  • Deterministic plans that can be inspected, fingerprinted, diffed, run, or compiled.
  • Contract generation for ODCS, DTCS, and DPCS artifacts.
  • Pluggable execution across local Python, Polars, Pandas, SQL, and PySpark, DataFusion, and DuckDB, plus orchestration integrations.

Define transformation logic once with @Transformation.portable. ETLantic's qualified relational baseline runs that definition across all seven engines. Use @Transformation.implementation(...) only as an explicit escape hatch for behavior outside the portable surface: native bodies are tied to one engine and will not be eligible for adaptive execution.

Application code should use the curated public facade:

import etlantic as etl

The public CLI (see the CLI reference):

  • Authoring: init, doctor, validate, inspect, plan, profile, run, compile, generate, diff
  • Ops: plugin, schema, reliability, erasure, viz, report, watch, stream, schedule, scheduler, worker
  • Agents: context, proposal

Execution options

Core has no dataframe, database, Spark, or orchestrator dependency. Install only the integrations a pipeline needs:

Capability 0.59
Local Python + JSON/CSV etlantic
Polars or Pandas etlantic[polars] or etlantic[pandas]
SQL or PySpark etlantic[sql] or etlantic[pyspark]
Airflow or Prefect etlantic[airflow] or etlantic[prefect]

Prefer portable transformations and set portable_transform_policy="require" so unsupported semantics fail during validation or planning. In controlled deployments, pin ETLantic and official plugins to the same release. See engine selection and compatibility.

Security and production posture

ETLantic is Beta, community-supported, with no SLA. Use it for documented single-tenant pilots. You can embed an HTTP control plane (etlantic-fastapi) with Supported isolation profiles (isolated-deployment, dedicated-schema). There is no hosted multi-tenant SaaS. See Capabilities and the control-plane program.

Plans and reports contain secret references, never resolved secret values. Production profiles require an explicit non-empty plugin_allowlist; an allowlist controls selection but is not a sandbox. Schema history stores fingerprints and metadata, never source rows.

Review the production readiness and security model before a pilot.

Learn more

These links use the Read the Docs stable alias, which remains on the latest published release. During candidate review, that is 0.57.2. The immutable patch-release tree is at v0.57.2.

Contributing

See CONTRIBUTING.md for development setup and pull-request guidance. Use GitHub Issues for bugs and questions, and follow the private instructions in SECURITY.md to report vulnerabilities.

ETLantic is available under the MIT License.

Metadata

Release files for etlantic 0.59.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for etlantic 0.59.0
File Size Uploaded
etlantic-0.59.0.tar.gz 2.2 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for etlantic 0.59.0
File Interpreter ABI Platform
etlantic-0.59.0-py3-none-any.whl Python 3 none any Details

Total release size: 3.4 MB

Release files / etlantic-0.59.0.tar.gz

Download URL etlantic-0.59.0.tar.gz
Size 2.2 MB
Tags Source
SHA-256 checksum
How to use checksums
45176d502a310285afc7e3fe049dcd05fe72570db84864b9369818f2c1349fa9
BLAKE2b-256 checksum
How to use checksums
0af8ef60a02897ee18f9a272889302b1723c6d74bade9ae9a4b0ee1c79c53a43
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.0 {"installer":{"name":"uv","version":"0.12.0","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}

Release files / etlantic-0.59.0-py3-none-any.whl

Download URL etlantic-0.59.0-py3-none-any.whl
Size 1.2 MB
Tags Python 3
SHA-256 checksum
How to use checksums
84971b8da3629c6ca61e7ce1689051f4f3a7b52207d914fd5f6e64cddaa4aebd
BLAKE2b-256 checksum
How to use checksums
9dc21c3222504d4a20c01c4c22d35b8b6a686c7d71791344cebcf75fa7797434
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.0 {"installer":{"name":"uv","version":"0.12.0","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}

Release history Release notifications | RSS feed

This release

0.59.0 This release

2 release files

0.58.0

2 release files

0.57.2

2 release files

0.57.1

2 release files

0.55.0

2 release files

0.54.0

2 release files

0.53.0

2 release files

0.52.1

2 release files

0.52.0

2 release files

0.51.0

2 release files

0.50.1

2 release files

0.50.0

2 release files

0.48.0

2 release files

0.47.0

2 release files

0.46.0

2 release files

0.45.0

2 release files

0.40.0

2 release files

0.39.0

2 release files

0.38.0

2 release files

0.37.0

2 release files

0.36.0

2 release files

0.35.0

2 release files

0.34.0

2 release files

0.33.0

2 release files

0.32.0

2 release files

0.31.0

2 release files

0.30.0

2 release files

0.29.0

2 release files

0.27.0

2 release files

0.26.0

2 release files

0.25.0

2 release files

0.24.0

2 release files

0.23.0

2 release files

0.22.0

2 release files

0.21.0

2 release files

0.20.0

2 release files

0.19.0

2 release files

0.18.0

2 release files

0.17.0

2 release files

0.16.0

2 release files

0.14.0

2 release files

0.13.0

2 release files

0.12.0

2 release files

0.11.0

2 release files

0.10.0

2 release 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