Skip to main content

Tiozin

Tiozin - Your friendly ETL framework


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.

Who is Tiozin for?

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

One-Minute Example

pip install tiozin

Using Python directly

from tiozin import TiozinApp

app = TiozinApp()
app.run("examples/jobs/dummy.yaml")

Done. No ceremony, no boilerplate.

Or define 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.yaml

Philosophy

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. The YAML format is intentionally minimal, making it easy for both humans and LLMs to generate and maintain jobs.
  • 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

Documentation

Writing Declarative Jobs

Concepts

Extending Tiozin

How-to Guides

Reference

Contributing

Contributions are welcome! See CONTRIBUTING.md for guidelines.

License

This project is licensed under the Mozilla Public License 2.0.

Download files

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

Source Distribution

tiozin-4.0.0.tar.gz (129.9 kB view details)

Uploaded Source

Built Distribution

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

tiozin-4.0.0-py3-none-any.whl (199.1 kB view details)

Uploaded Python 3

File details

Details for the file tiozin-4.0.0.tar.gz.

File metadata

  • Download URL: tiozin-4.0.0.tar.gz
  • Upload date:
  • Size: 129.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","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 tiozin-4.0.0.tar.gz
Algorithm Hash digest
SHA256 bf861a35c74c0266bbcd7fb20a361f82df1ad6708e32ea9174070faf6fa453f4
MD5 0f9bfd7ba4456d4bc41f60a6bfb89934
BLAKE2b-256 41e994a77d9f07c71e731d34bb09f4e68ec091945f13dcb2ef8b9a3f8f0c485b

See more details on using hashes here.

File details

Details for the file tiozin-4.0.0-py3-none-any.whl.

File metadata

  • Download URL: tiozin-4.0.0-py3-none-any.whl
  • Upload date:
  • Size: 199.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","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 tiozin-4.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9ab2ba9b1fcc899706279b1472e9b72b376dbb24c1499a5f0c85a749409c358d
MD5 6e1c4b1d35d69c0bc19a0925fccbebcc
BLAKE2b-256 9b026c1d615648e03aa9881a0846ad166f3f6d9e098e2bdd782cabe2505163d7

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

4.0.0 This release

2 files

3.3.1

2 files

3.3.0

2 files

3.2.0

2 files

3.1.0

2 files

3.0.0

2 files

2.0.0

2 files

1.5.0

2 files

1.4.0

2 files

1.2.2

2 files

1.2.0

2 files

1.1.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