Great news! We've made significant improvements to...
# announcements
q
Great news! We've made significant improvements to reduce the binary sizes of our Go-based Pulumi providers (including AWS, GCP, Azure, and others). The AWS provider (v6.60.0) is already showing impressive results: • 32% reduction in size (932MB → 637MB) • 58% reduction in compressed download size (327MB → 137MB) šŸš€ We'll be rolling out these optimizations to the other providers in the coming days. These improvements mean faster downloads and less disk space used on your machines. šŸŽ‰
g
Out of curiosity - since we also sometimes struggle with way too large go binaries - are there any tools/techniques that you used to achieve this or was it mainly a manual trimming and restructuring of dependencies?
q
The main optimization was stripping debug symbols from the binary by using the
-s
and
-w
linker flags. We're also actively evaluating other options for further reducing the size. Like storing compressed versions of embedded data (like the pulumi schema for example) and decompressing it on the fly.
c
@quick-house-41860 Are you also using upx for further compression? I regularly see >50 to as much as 75% reduction in size with upx. https://upx.github.io/
d
UPX tends to get stuff flagged as malicious by various parties that gatekeep that particular stuff
c
Interesting. I've not personally had any issues with upx, but maybe some folks (like Pulumi) might want to avoid using it. For me and my company, we have been very happy to see a massive reduction in our Go binary sizes since using upx, but I completely understand and appreciate that not everyone might be able to use the tool.
q
We did briefly evaluate UPX, but we ran into issues on apple silicon (https://github.com/upx/upx/issues/601). Another concern we had about it is the increased startup time.