I know you're going for portability, but pulling in arpa/inet.h doesn't seem so suckless.
The selection of bzip as the compression algorithm seems like a compromise. suckless flate[0], lzham[1], miniz[2], lz4/lz4hc[3], minilzo[4], fastlz[5] maybe deserve some consideration? flate, miniz, lz4, miniz, minilzo, fastlz are at least much cheaper on CPU cycles than bzip2, especially on decompression, while also having lower SLOCs. When dealing with images, how fast you can go from file to buffer/display usually matters most. [0] http://git.suckless.org/flate/tree/ [1] https://code.google.com/p/lzham/ [2] https://code.google.com/p/miniz/ [3] https://code.google.com/p/lz4/ [4] http://oldhome.schmorp.de/marc/liblzf.html [5] https://code.google.com/p/fastlz/