I’ve mentioned this before, so I will just leave a TLDR here, but basically we want to have three things with snaps:
- We want people that install a snap to get exactly the same bits on their computer (that is the bits that are the .snap file) that the snap publisher uploaded. If snapd dynamically recompresses or uncompresses snaps at runtime, we break this promise and lose some cryptographic guarantees that are important to us.
- We want to support snaps on many different OS’s, including really old ones that don’t support new compression settings like zstd, etc.
- We want to also support really space limited devices such as IoT devices, so we can’t just pick the default as very large size since this is a bad experience for those users.
You can see more in depth reasoning here: https://ubuntu.com/blog/why-lzo-was-chosen-as-the-new-compression-method as well as on the topic I originally did all my research on: Squashfs performance effect on snap startup time