目录
1.库简介
zlib是一套通用的解压缩开源库,提供了内存(in-memory)压缩和解压函数,能检测解压出来的数据完整性,由Jean-loup Gailly与Mark Adler所开发。源码网址:zlib Home Sitehttp://www.zlib.net/
zlib初始版本于1995年5月1日发表。zlib支持gzip文件(.gz格式)的读写。
2.算法
zlib使用Deflate算法,最初是为libPNG库所写。Deflate是huffman编码的加强算法。
Deflate算法使用很少的系统资源,对各种数据提供很好的压缩效果。ZIP压缩包基本上都使用了这个算法。(当然,ZIP压缩包格式也支持其他解压缩算法)。
3.计算资源
zlib库提供了对处理器和内存使用控制的能力。不同的压缩级别数值可以指示不同的压缩执行速度。
4.数据长度
对于压缩和解压缩,没有数据长度的限制。当压缩一个长(无限)数据流时,最好写入全刷新点。
5.业界使用
目前,数以千计的应用程序直接或间接使用zlib库,包括:
* Linux核心:使用zlib以实作网络协定的压缩、档案系统的压缩以及开机时解压缩自身的核心。
* libpng,用于PNG图形格式的一个实现,对bitmap数据规定了DEFLATE作为流压缩方法。
* Apache:使用zlib实作http 1.1。
* OpenSSH、OpenSSL:以zlib达到最佳化加密网络传输。
* FFmpeg:以zlib读写Matroska等以DEFLATE算法压缩的多媒体串流格式。
* rsync:以zlib最佳化远端同步时的传输。
* The dpkg and RPM package managers, which use zlib to unpack files from compressed software packages.
* Subversion 、Git和 CVS 版本控制 系统,使用zlib来压缩和远端仓库的通讯流量。
* dpkg和RPM等包管理软件:以zlib解压缩RPM或者其他封包。
因为其代码的可移植性,宽松的许可以及较小的内存占用,zlib在许多嵌入式设备中也有应用。