| Crates.io | zetten |
| lib.rs | zetten |
| version | 1.0.9 |
| created_at | 2025-12-28 20:05:42.626325+00 |
| updated_at | 2026-01-04 17:33:58.147807+00 |
| description | Fast, Python-aware task runner with deterministic caching and DAG-based scheduling |
| homepage | https://docs.zetten.in |
| repository | https://github.com/amit-devb/zetten |
| max_upload_size | |
| id | 2009330 |
| size | 283,081 |
The High-Performance Task Runner for Python Backends. Parallel. Deterministic. Fast.
Zetten is a dependency-aware execution engine designed to unify how you run tests, linters, and builds. It ensures that your workflow remains identical across local development environments and any CI platform, only faster.
Modern Python projects often require coordinating various tools (tests, type-checkers, formatters). Zetten eliminates "Glue Code Fatigue" by providing:
setup always precedes test).run --tag ci) with a single command.zetten doctor to identify environment inconsistencies instantly.Install Zetten:
pip install zetten
Initiate a project:
zetten init
Define tasks in pyproject.toml:
[tool.zetten.tasks.lint]
cmd = "ruff check src"
inputs = ["src/"]
tags = ["ci"]
[tool.zetten.tasks.test]
cmd = "pytest"
depends_on = ["lint"]
inputs = ["src/", "tests/"]
tags = ["ci"]
[tool.zetten.tasks.build]
description = "Build the project"
# Supports Fallback Syntax: ${VAR:-default}
cmd = "mkdir -p ${build_dir} && python -m build --outdir ${DEST:-dist}"
depends_on = ["lint"]
inputs = ["src/"]
Define tasks in zetten.toml:
[tasks.setup]
cmd = "pip install -r requirements.txt"
[tasks.lint]
cmd = "ruff check src"
inputs = ["src/"]
tags = ["ci"]
[tasks.test]
cmd = "pytest"
depends_on = ["setup"]
inputs = ["src/", "tests/"]
tags = ["ci"]
Run tasks:
zetten run test
zetten run lint test
Zetten will only re-run tasks when their inputs change.
Zetten uses a deterministic three-tier system to resolve variables:
Zetten is designed for the modern CI/CD pipeline. By using Tags and Strict Mode, you can ensure your pipeline is both flexible and safe.
# Force a specific version and environment in CI
zetten run --tag ci -k VERSION=${GITHUB_SHA} -k ENV=prod
If a foundational task fails, Zetten halts downstream execution immediately to save CI minutes and prevent cascading failures.
Configuration is explicit by design:
Configuration lives in:
If no configuration is found, Zetten will explain how to resolve the issue.
Zetten is currently in v0.1. If no configuration file is found, Zetten will provide clear instructions on how to initialize your project.
Full documentation is available at: Github Wiki
We love Rust and Python! If you want to help make Zetten even faster:
Built with ❤️ for the Python community using the speed of Rust.
Please open an issue or discussion on GitHub before proposing large changes.