zLib is free, and the algorithm it uses is well documented in the RFCs Unfortunately, it definitely takes puzzling over There's the new bzip as well...not sure how that compares -- could be interesting to look at.