madler/zlib
GitHub: madler/zlib
经典的无损数据压缩 C 库,实现 DEFLATE 算法,是 gzip、PNG、ZIP 等格式及无数软件的底层依赖。
Stars: 6714 | Forks: 2716
ZLIB 数据压缩库
zlib 1.3.2.1 是一个通用的数据压缩库。所有代码都是线程安全的(不过有关注意事项请参阅 FAQ)。zlib 库使用的数据格式由 RFC(Request for Comments)1950 到 1952 描述,地址为 (zlib 格式)、rfc1951(deflate 格式)和 rfc1952(gzip 格式)。
压缩库的所有功能都记录在 zlib.h 文件中(欢迎志愿者编写 man 手册页,联系 zlib@gzip.org)。文件 test/example.c 中给出了库的使用示例,该文件还测试库是否正常工作。另一个示例在文件 test/minigzip.c 中。压缩库本身由根目录下的所有源文件组成。
要编译所有文件并运行测试程序,请遵循 Makefile.in 顶部的说明。简而言之,就是 "./configure; make test",如果顺利的话,"make install" 应该适用于大多数 Unix 版本。对于 Windows,请使用 win32/ 或 contrib/vstudio/ 中的专用 makefile。对于 VMS,请使用 make_vms.com。
关于 zlib 的问题应发送至 ,或者如果是 Windows DLL 版本,请联系 Gilles Vollant 。zlib 主页是 。在报告问题之前,请检查该站点以确认您拥有最新版本的 zlib;否则,请获取最新版本并检查问题是否仍然存在。
在寻求帮助之前,请务必阅读 zlib FAQ 。
Mark Nelson 为《Dr. Dobb's Journal》1997 年 1 月刊撰写了一篇关于 zlib 的文章;该文章的副本可在 获取。
版本 1.3.2.1 中所做的更改记录在 ChangeLog 文件中。
不支持的第三方贡献可在 contrib/ 目录中找到。
zlib 可通过 java.util.zip 包在 Java 中使用。请访问以下链接查看 API 文档:。
由 Paul Marquess 编写的 zlib 和 bzip2 的 Perl 接口可在 找到。
由 A.M. Kuchling 编写的 zlib Python 接口在 Python 1.5 及更高版本中可用,请参阅 。
zlib 内置于 tcl 中:。
由 Gilles Vollant 在 zlib 基础上编写的用于读写 .zip 格式文件的实验性包,可在 zlib 的 contrib/minizip 目录中找到。
针对某些目标的说明:
- 对于 Windows DLL 版本,请参阅 win32/DLL_FAQ.txt
- 对于 64 位 Irix,deflate.c 必须在没有任何优化的情况下编译。使用 -O 时,一个 libpng 测试会失败。该测试在 32 位模式下(使用 -n32 编译器标志)可以正常工作。该编译器错误已报告给 SGI。
- zlib 在 OSF/1 2.1 下的 DEC 3000/300LX 上无法使用 gcc 2.6.3 编译工作,但使用 cc 编译时可以工作。
- 在 AlphaServer 上的 Digital Unix 4.0D(原 OSF/1)上,cc 选项 -std1 是让 gzprintf 正常工作所必需的。这已由 configure 完成。
- zlib 在某些版本的 /bin/cc 下无法在 HP-UX 9.05 上工作。它可以在其他编译器下工作。使用 "make test" 检查您的编译器。
- 对于 PalmOs,请参阅
致谢:
zlib 使用的 deflate 格式由 Phil Katz 定义。deflate 和 zlib 规范由 L. Peter Deutsch 编写。感谢所有报告问题并提出各种改进建议的人;由于人数众多,无法在此一一列举。
版权声明:
(C) 1995-2026 Jean-loup Gailly 和 Mark Adler
本软件“按原样”提供,不提供任何明示或暗示的担保。在任何情况下,作者均不对因使用本软件而产生的任何损害承担责任。
特此许可任何人出于任何目的使用本软件,包括商业应用程序,并对其进行修改和重新分发,但须遵守以下限制:
1. 不得歪曲本软件的来源;您不得声称您编写了原始软件。如果您在产品中使用本软件,请在产品文档中注明致谢,但这并非必需。
2. 修改后的源版本必须明确标记,且不得被歪曲为原始软件。
3. 本声明不得从任何源代码分发中删除或更改。
Jean-loup Gailly Mark Adler
jloup@gzip.org madler@alumni.caltech.edu
如果您在产品中使用 zlib 库,我们希望*不要*收到冗长的法律文件要求签署。源代码是免费提供的,但不提供任何形式的担保。该库完全由 Jean-loup Gailly 和 Mark Adler 编写;它不包含第三方代码。我们对本项目的所有贡献和分发完全以个人身份进行,不向任何第三方转让任何知识产权。
如果您重新分发修改后的源代码,我们希望您在 ChangeLog 文件中包含记录您更改的历史信息。请阅读 FAQ 以获取有关分发修改后源代码版本的更多信息。
标签:Deflate, gzip, RFC 1950, RFC 1951, RFC 1952, zlib, 基础设施软件, 客户端加密, 客户端加密, 嵌入式开发, 开源库, 搜索引擎爬虫, 数据压缩, 文件格式, 无损压缩, 算法, 通用库