Much faster
Dagger 1.0 is much faster. We attacked speed from many angles: container execution, file operations, cache persistence, long-tail profiling, SDK codegen, lazy loading. Dang, our fast scripting language, is the entrypoint that loads every module, and all official modules and SDK runtimes are written in pure Dang. You still write your own modules in Go, Python, TypeScript or any other SDK language. One tester's reaction: "Wow, 1.0.0 is so snappy."
Dagger adds overhead to each operation: it runs a container, computes hashes, processes API calls and stores the state of objects. During the 1.0 beta, this overhead went down a lot.
- Parallel containers: 1,000 containers at the same time: from 35–61 s to 16–17 s.
- Container start: crun replaces runc. 100 containers in sequence: 40% faster.
- Many files: collect 300 files: from 11.8 s to 1.1 s.
- File checksums: for one file in a large directory: from 255 ms to 15 ms.
- CLI connect: from 607 ms to 476 ms, and more on hosts with many containers.
- Large workspaces:
dagger functionswith 41 modules: 30% faster. - Dang modules: each call: from 170 ms to 72 ms.