A lightweight Extract-Load tool for building simple, reliable batch data transfer pipelines
Project description
XLT — The YAML-first Data Move Tool
Pronounced: ex-ell-tee
XLT is a lightweight Extract–Load tool for building simple, reliable batch data movement pipelines.
Write a single YAML file that defines an extract and a load step, and run it anywhere with a clean, fast CLI.
XLT gives data engineers a predictable, extensible, Git-native way to move data between databases, APIs, files, and cloud warehouses — without operating a control plane or writing yet another custom Python script.
🚀 Features
- YAML-first pipelines — define your extract and load declaratively
- CLI-first design — run pipelines from the command line or any orchestrator
- Extensible — create custom extractors/loaders with minimal Python
- Portable — works anywhere Python runs (local, cron, Airflow, Prefect, GitHub Actions, on-prem)
- Incremental loads — simple watermark & key-based incremental patterns
- Load strategies — append, truncate-insert, merge (planned)
- Zero platform overhead — no UI, no scheduler, no metadata DB
- Engineer-friendly — CLI-first, Git-native, orchestration-agnostic
If you’ve ever written a one-off Python script to copy data from A to B, XLT replaces that with a clean YAML pipeline and a battle-tested execution engine.
Design Philosophy
XLT aims to occupy the gap between:
“I’ll write another custom Python script…” and “Let’s deploy Airbyte / a managed ELT platform.”
Principles:
- Simplicity over magic
- Declarative over imperative
- Small surface area
- No servers
- Do one thing well: move data
If dbt is the “data build tool”, XLT is the data move tool.
📦 Installation
pip install xlt
🤝 Contributing
XLT is designed to be open, simple, and community-friendly.
Ways to contribute:
- Create a new adapter (database, file, API, cloud service)
- Improve docs and examples
- Add validator rules for YAML schema
- Build testing fixtures
- Submit ideas for features
PRs are welcome!
📄 License
MIT License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file xlt_core-0.0.1.tar.gz.
File metadata
- Download URL: xlt_core-0.0.1.tar.gz
- Upload date:
- Size: 617.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9c935cce5df5c2892c2fc6707fa6e1399d89c6d9469fb2c234322b0095ef78e5
|
|
| MD5 |
5caee3e8d335c2e3b5fa1b7a9609844e
|
|
| BLAKE2b-256 |
eb8c2234cd89e058cec7faddabaf340abd3d0ac20e5d139c1ecdb44898a73d45
|
File details
Details for the file xlt_core-0.0.1-py3-none-any.whl.
File metadata
- Download URL: xlt_core-0.0.1-py3-none-any.whl
- Upload date:
- Size: 3.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e10b837e9576b41bd86598832cc0d0c23083f413f3edcad01ea9f7eaf1fd194c
|
|
| MD5 |
727acfa7caac14ac1cd1cb1e467b95a2
|
|
| BLAKE2b-256 |
cb366e8de7fd9a88725e4a3b4d90421235e33da49ed8eeeeb60d352803ce2630
|