[Feature request] Add ability to disable apk compression
Hello everyone, I want to introduce zstd compression in terms of storing multiple packages in binary form.
mkdir node
cd node
wget https://nodejs.org/download/release/v18.18.0/node-v18.18.0-linux-x64.tar.gz
wget https://nodejs.org/download/release/v18.17.1/node-v18.17.1-linux-x64.tar.gz
wget https://nodejs.org/download/release/v18.17.0/node-v18.17.0-linux-x64.tar.gz
wget https://nodejs.org/download/release/v18.16.1/node-v18.16.1-linux-x64.tar.gz
wget https://nodejs.org/download/release/v18.16.0/node-v18.16.0-linux-x64.tar.gz
tar -cvf node.tar node-* && zstd -f --ultra -22 node.tar
> ( 169 MiB => 148 MiB, node.tar.zst)
Here we have downloaded similar binary node releases. But actually gunzip compression is a problem, zstd can't use binary similarity as it should be.
gzip -d node-*
gzip -5 node-*
tar -cvf node.tar node-* && zstd -f --ultra -22 node.tar
( 172 MiB => 149 MiB, node.tar.zst)
gzip -d node-*
gzip -1 node-*
tar -cvf node.tar node-* && zstd -f --ultra -22 node.tar
( 196 MiB => 162 MiB, node.tar.zst)
gzip -d node-*
tar -cvf node.tar node-* && zstd -f --ultra -22 node.tar
( 612 MiB => 96.4 MiB, node.tar.zst)
Changing gunzip level won't help a lot. But after removing compression zstd finds binary similarity and provided excellent results. Similar things are related to zstd with dictionary: you can train dictionary for similar binary packages and store all package versions very efficiently in zstd archive.
The only one issue is gunzip compression. Can you please add an ability for apk user for remove it? Thank you.