We’ve seen you talking about it in our community forums. Some of you, in your quest for machine creation speedups, even found the experimental.use_zstd = true flag to enable it for Depot builds. It’s been some time, and this feature no longer needs to be experimental.
We’re rolling out Zstandard as the default compression algorithm for all remote builds on Fly.io.
Why it matters?
We’re rolling zstd compression out to decrease image size and transfer times (from our experiments, depending on your image, that will be a reduction of roughly 5-20%) and to reduce decompression time (by as much as 40%).
What it means for you
No configuration change is needed! All images will now be compressed with zstd by default as we roll this out. This means you’ll benefit from faster deployments, automatically. Smaller image layers mean less data to download to the host when your app is starting, and with zstd, decompression will be faster as well. This will be especially noticeable for larger images. Your images will also take up less space in the registry and cache, and any images you pull will be smaller on your local disk.
If you need it, we’ve added an option to explicitly set the compression algorithm by adjusting the --compression and --compression-level flags in the CLI, as well as in the fly.toml file, like so:
...
[build]
compression = 'zstd'
compression_level = 3
...
All you need is the latest flyctl (at least v0.3.189 )