yatr π¦¬
Yet another task runner. But this oneβs actually good.
π yetanothertaskrunner.com Β· π¦ crates.io Β· π GitHub
yatr test # Run tests
yatr build # Build with dependencies
yatr --watch test # Re-run on file changes
yatr is a fast, single-binary, polyglot task runner with a cache that actually tells the truth: content-addressed, output-restoring, and shareable across machines and CI.
Why yatr?
| Feature | Make | Just | cargo-make | yatr |
|---|---|---|---|---|
| Content-addressed caching | β | β | β οΈ | β |
| Captures & restores outputs | β | β | β | β |
| Remote / shared cache | β | β | β | β |
| Signed cache (anti-poisoning) | β | β | β | β |
| Affected (monorepo) detection | β | β | β οΈ | β |
| Toolchain management | β | β | β | β |
| Sandboxed WASM plugins | β | β | β | β |
| Config schema + LSP | β | β οΈ | β | β |
| Single binary, zero runtime deps | N/A | β | β | β |
It sits in the sweet spot: simpler than cargo-make, far more capable than just β a correct, fast, hermetic polyglot command runner.
The four things it gets right
- Trusted β a content-addressed cache, cryptographically signed for sharing, with IO-tracing to catch under-declared outputs.
- Fast β ~8 ms startup, a ready-queue scheduler, and affected-detection that skips what git says canβt have changed. (Benchmarks.)
- Polyglot-complete β pin language toolchains so a fresh checkout runs green; write tasks in shell, Rhai, or WASM.
- Delightful β a JSON Schema and a language server for
yatr.toml, structured output, and profiling.
Stability
yatr is 1.0. The yatr.toml schema and the CLI surface are stable under
semantic versioning: breaking either requires a 2.0. New
keys and commands may still arrive in minor releases, but existing ones keep
their meaning, and the cache and remote protocols survive across 1.x upgrades.
The full history lives in the
changelog.
The library/crate API and the WASM plugin ABI (yatr-plugin) remain pre-1.0 and
may change while the plugin model evolves.