I made changes to mt-daapd to support gzip again. It saves between 75% and 85%. Right now it always uses GZIP when the client asks for it. Maybe you can add the check for the config. Also I could only test it with iTunes. I don’t know if I did break anything else.
PS: the patch is based on dispatch.c revision 1328
I didn’t look at it too closely, but that looks like it’s compressed in-memory, is that right?
I’ll point people to this, but I won’t commit it unless it does it on-the-fly… I want stuff that will run on linkstation and slug, and other low-memory devices.
I was thinking to make a pass just tossing the output to get the length, then making another full pass doing the actual compression.
It’s probably much slower, but it means that it can scale to arbitrarily large libraries.