ETL shouldn't require 80 files, 50 YAMLs, and a PhD in complexity.
Tiozin brings it back to basics: Transform. Input. Output. Nothing more, nothing less.
A lightweight Python framework that makes data jobs declarative, testable, and actually enjoyable to write.
Your uncle's advice: keep it simple, readable, and testable.
Tiozin is built around a small set of principles that are not features but constraints that shape the design.
- Declarative: Define what, not how
- Pluggable: Swap runners, registries, and plugins when needed
- Metadata-native: Execution and metadata walk together
- Observable: Logs that actually help
- Testable: Mock anything, validate everything
pip install tiozinDefine a declarative job
kind: LinearJob
name: example_job
owner: tiozin@tiozin.com
maintainer: tiozin
cost_center: tio_scrooge
org: tiozin
region: latam
domain: marketing
subdomain: campaigns
layer: refined
product: users
model: customers
runner:
kind: NoOpRunner
name: postgres
log_level: "{{ ENV.LOG_LEVEL }}"
db_url: postgres://user:{{ SECRET.FAKE_PASSWORD }}@host:5432/dbname
inputs:
- kind: NoOpInput
name: load_it
layer: raw
path: .output/lake-{{domain}}-{{layer}}/{{product}}/{{model}}/date={{ DAY[-1] }}
transforms:
- kind: NoOpTransform
name: process_it
strategy: sha256
outputs:
- kind: NoOpOutput
name: save_it
path: .output/lake-{{domain}}-{{layer}}/{{product}}/{{model}}/{{ today }}Run it:
$ tiozin run examples/jobs/dummy.yamlUsing Python directly
from tiozin import TiozinApp
app = TiozinApp()
app.run("examples/jobs/dummy.yaml")Done. No ceremony, no boilerplate.
Tiozin is human-readable and machine-generatable:
- Data engineers who want reusable pipeline components
- Teams that value declarative jobs
- Projects that require testable ETL logic
- Pipelines where metadata is connected to the execution model
- Teams leveraging AI agents 🤖 to author and maintain data jobs
- Creating a Provider Family
- Creating Pluggable Tiozins
- Tio Proxy: Adding Cross Cutting Family Features
- Tio Kernel - The Core Family
- Tio Spark - Spark Family Example
- Tio Duckdb - DuckDB Family Example
Contributions are welcome! See CONTRIBUTING.md for guidelines.
This project is licensed under the Mozilla Public License 2.0.
