
ZLIB データ圧縮ライブラリ
zlib 1.2.8 は汎用データ圧縮ライブラリです。すべてのコードはスレッドセーフです。zlib ライブラリで使用されるデータ形式は、RFC (Request for Comments) 1950 から 1952 で説明されており、ファイルは http://tools.ietf.org/html/rfc1950 (zlib 形式)、rfc1951 (deflate 形式)、rfc1952 (gzip 形式) にあります。
圧縮ライブラリの全関数はファイル zlib.h に文書化されています(マニュアルページを書くボランティア歓迎、[email protected] まで連絡してください)。ライブラリの使用例はファイル test/example.c にあり、これによりライブラリが正しく動作するかもテストされます。別の例はファイル test/minigzip.c にあります。圧縮ライブラリ自体はルートディレクトリの全ソースファイルで構成されています。
すべてのファイルをコンパイルしてテストプログラムを実行するには、Makefile.in の先頭にある指示に従ってください。手短に言うと、「./configure; make test」を実行し、それがうまくいけば、「make install」でほとんどの Unix 系で動作するはずです。Windows の場合は、win32/ または contrib/vstudio/ 内の特別な makefile を使用してください。VMS の場合は、make_vms.com を使用してください。
zlib に関する質問は [email protected] まで送ってください。Windows DLL バージョンについては Gilles Vollant [email protected] まで。zlib ホームページは http://zlib.net/ です。問題を報告する前に、最新の zlib バージョンを持っているかどうかこのサイトで確認してください。そうでなければ最新版を入手し、問題がまだ存在するか確認してください。
助けを求める前に、zlib FAQ http://zlib.net/zlib_faq.html をお読みください。
Mark Nelson [email protected] は Dr. Dobb's Journal の 1997 年 1 月号に zlib に関する記事を執筆しました。記事のコピーは http://marknelson.us/1997/01/01/zlib-engine/ にあります。
バージョン 1.2.8 での変更点はファイル ChangeLog に文書化されています。
サポートされていないサードパーティのコントリビューションは contrib/ ディレクトリに提供されています。
zlib は Java で java.util.zip パッケージを使用して利用可能で、http://java.sun.com/developer/technicalArticles/Programming/compression/ に文書化されています。
Paul Marquess [email protected] によって書かれた zlib への Perl インターフェースは、CPAN (Comprehensive Perl Archive Network) サイトで利用可能で、http://search.cpan.org/~pmqs/IO-Compress-Zlib/ を含みます。
A.M. Kuchling [email protected] によって書かれた zlib への Python インターフェースは、Python 1.5 以降で利用可能です。http://docs.python.org/library/zlib.html を参照してください。
zlib は tcl に組み込まれています: http://wiki.tcl.tk/4610
Gilles Vollant [email protected] によって zlib 上に書かれた .zip 形式のファイルを読み書きする実験的なパッケージが、zlib の contrib/minizip ディレクトリにあります。
いくつかのターゲットに関する注意:
Windows DLL バージョンについては、win32/DLL_FAQ.txt を参照してください。
64ビット Irix の場合、deflate.c は最適化なしでコンパイルする必要があります。-O を付けると、libpng のテストが1つ失敗します。テストは 32 ビットモード(-n32 コンパイラフラグ)で動作します。このコンパイラのバグは SGI に報告済みです。
zlib は OSF/1 2.1 上の DEC 3000/300LX で gcc 2.6.3 では動作しません。cc でコンパイルすると動作します。
AlphaServer 上の Digital Unix 4.0D(旧 OSF/1)では、gzprintf を正しく動作させるために cc オプション -std1 が必要です。これは configure によって行われます。
zlib は HP-UX 9.05 で一部のバージョンの /bin/cc では動作しません。他のコンパイラでは動作します。「make test」を使用してコンパイラを確認してください。
gzdopen は RISCOS または BEOS ではサポートされていません。
PalmOs については、http://palmzlib.sourceforge.net/ を参照してください。
謝辞:
zlib で使用される deflate 形式は Phil Katz によって定義されました。deflate および zlib 仕様は L. Peter Deutsch によって書かれました。zlib の問題を報告し、さまざまな改良を提案してくれたすべての方々に感謝します。ここに列挙するには多すぎます。
著作権表示:
(C) 1995-2013 Jean-loup Gailly and Mark Adler
このソフトウェアは「現状のまま」提供され、明示または黙示の保証は一切ありません。このソフトウェアの使用に起因するいかなる損害についても、作者は責任を負いません。
このソフトウェアは、商用アプリケーションを含むあらゆる目的での使用、および改変や自由な再配布が許可されています。ただし、以下の制限に従うものとします。
このソフトウェアの出所を誤って伝えてはなりません。あなたがオリジナルのソフトウェアを書いたと主張してはなりません。このソフトウェアを製品で使用する場合、製品ドキュメントへの謝辞の記載は歓迎しますが、必須ではありません。
改変されたソースバージョンは、その旨を明確に表示し、オリジナルのソフトウェアであると誤って伝えてはなりません。
この表示は、いかなるソース配布からも削除または改変してはなりません。
Jean-loup Gailly Mark Adler [email protected] [email protected]
製品で zlib ライブラリを使用する場合、署名用の長大な法的文書を送付しないでいただけると幸いです。ソースは無料で提供されていますが、いかなる種類の保証もありません。ライブラリは完全に Jean-loup Gailly と Mark Adler によって書かれたものであり、サードパーティコードは含まれていません。
改変したソースを再配布する場合、変更内容を文書化した履歴情報をファイル ChangeLog に含めていただけると幸いです。改変したソースバージョンの配布に関する詳細は FAQ をお読みください。