Dagger
A platform for automating software delivery: it builds, tests and ships code through a typed system API, with SDKs in eight languages and incremental, container-based execution.
Dagger automates software delivery so that builds, tests and deployments run the same way locally, in CI or in the cloud. It provides a cross-language system API for orchestrating containers, filesystems, secrets and git repositories, with native SDKs for Go, Python, TypeScript, PHP, Java, .NET, Elixir and Rust, plus an interactive REPL.
Operations run in containers orchestrated by sandboxed functions, with typed, content-addressed artifacts that pass between languages and modules without serialization. Every operation is cached by its inputs, so only what changed re-runs, and every run emits an OpenTelemetry trace that can be viewed in the terminal or a web view.
It requires a Linux container runtime and runs natively on Linux or through Docker Desktop-style tools on macOS and Windows, giving identical behavior locally and in CI.