All Recipe Types¶
must supports 41 recipe types across 17 languages plus 20 bridge tools. Each recipe type knows how to invoke the right toolchain, compute cache keys, and handle errors.
Quick reference¶
| Type | Language | Command | Cache |
|---|---|---|---|
shell |
Any | Shell script | mtime (default) or hash |
rust-bin |
Rust | cargo build -p <pkg> |
hash |
rust-lib |
Rust | cargo build --lib -p <pkg> |
hash |
rust-test |
Rust | cargo test -p <pkg> |
none |
go-bin |
Go | go build |
hash |
go-test |
Go | go test |
none |
c-bin |
C | cc -o <output> <sources> |
hash |
c-lib |
C | ar rcs / cc -shared |
hash |
ts-bin |
TypeScript | tsc --project |
hash |
ts-check |
TypeScript | tsc --noEmit |
none |
ts-lint |
TypeScript | biome lint |
none |
npm |
JS/TS | npm run <script> |
hash |
py-bin |
Python | Python build | hash |
py-test |
Python | pytest |
none |
py-lint |
Python | ruff check + mypy |
none |
zig-bin |
Zig | zig build |
hash |
zig-test |
Zig | zig build test |
none |
java-bin |
Java | ./gradlew build |
hash |
java-test |
Java | ./gradlew test |
none |
kotlin-bin |
Kotlin | ./gradlew build |
hash |
kotlin-test |
Kotlin | ./gradlew test |
none |
swift-bin |
Swift | swift build -c release |
hash |
swift-test |
Swift | swift test |
none |
dotnet-build |
.NET | dotnet build |
hash |
dotnet-test |
.NET | dotnet test |
none |
dotnet-publish |
.NET | dotnet publish |
hash |
ruby-bin |
Ruby | bundle install + build |
hash |
ruby-test |
Ruby | bundle exec rspec |
none |
dart-bin |
Dart | dart compile exe |
hash |
dart-test |
Dart | dart test |
none |
elixir-build |
Elixir | mix deps.get + mix compile |
hash |
elixir-test |
Elixir | mix test |
none |
flutter-build |
Flutter | flutter build <platform> |
hash |
flutter-test |
Flutter | flutter test |
none |
nim-bin |
Nim | nim c -d:release |
hash |
nim-test |
Nim | nim r --hints:off |
none |
docker-build |
Docker | docker build |
hash |
docker-push |
Docker | docker push |
none |
precompiled-bin |
Any | Download + SHA-256 verify | hash |
plugin |
Lua | User-defined | mtime |
bridge |
Any | Delegates to existing tool | none |
Common fields¶
All recipes support:
[recipe.<name>]
type = "..." # required
deps = ["dep1"] # optional dependencies
env = { KEY = "val" } # optional env vars
phony = false # optional: always re-run
Per-language guides¶
See the individual recipe pages for detailed configuration, caching behavior, and examples:
- Shell — generic shell scripts
- Rust — cargo build/test/clippy
- Go — go build/test
- C/C++ — cc/c++ compilation
- TypeScript — tsc, biome, npm
- Python — pytest, ruff, mypy
- Zig — zig build/test
- Java/Kotlin — Gradle wrapper
- Swift — swift build/test
- .NET — dotnet build/test/publish
- Ruby — bundle + rspec
- Dart — dart compile/test
- Elixir — mix compile/test
- Flutter — flutter build/test
- Nim — nim compile/test
- Docker — docker build/push
- Precompiled Binaries — download and cache prebuilt binaries
- Bridge — delegate to Make, npm, Gradle, Bazel, and 16 other tools
- Plugins — custom Lua recipe types