Maintained by Nathan Moinvaziri.
This library is a complete refactoring of the minizip contribution found in the zlib distribution. The motivation for this fork has been the inclusion of advanced features, improvements in code maintainability and readability, and the reduction of duplicate code.
Minizip was originally developed by Gilles Vollant and had been contributed to by many people. As part of the zlib distribution, Mark Adler has maintained the original minizip project.
In 2006, I began working with the minizip project and started submitting bugs I found in the library to Gilles Vollant via e-mail. In 2010, I implemented some additional features like disk splitting and I/O buffering. My continued work on the project necessitated setting up a public repository so I could share my improvements with the rest of the world. I have been maintaining this fork of the project ever since. In 2017, I began the task of refactoring and rewriting most of library as it had become difficult to maintain and code readability had suffered over the years.
To generate project files for your platform:
cmake . -DBUILD_TEST=ON cmake --build .
| Name | Description | Default Value | |:- |:-|:-:| | USE_ZLIB | Enables ZLIB compression | ON | | USE_BZIP2 | Enables BZIP2 compression | ON | | USE_LZMA | Enables LZMA compression | ON | | USE_PKCRYPT | Enables PKWARE traditional encryption | ON | | USE_AES | Enables WinZIP AES encryption | ON | | COMPRESS_ONLY | Only support compression | OFF | | DECOMPRESS_ONLY | Only support decompression | OFF | | BUILD_TEST | Builds minizip test executable | OFF |
Option 1. Install the zlib package to the Program Files directory with an Administrator command prompt.
cmake . -DCMAKE_INSTALL_PREFIX=%PROGRAMFILES%\zlib cmake --build . --config Release --target INSTALL
Option 2. Compile zlib in minizip's lib directory.
cmake . cmake --build . --config Release
Navigate back to the minizip directory and before building run:
cmake . -DZLIB_LIBRARY=lib\zlib\release\zlibstatic.lib -DZLIB_INCLUDE_DIR=lib\zlib\
| File(s) | Description | Required | |:- |:-|:-:| | minizip.c | Sample application | No | | mz_compat.* | Minizip 1.0 compatibility layer | No | | mz.h | Error codes and flags | Yes | | mz_os* | OS specific helper functions | Encryption, Disk Splitting | | mz_strm.* | Stream interface | Yes | | mz_strm_aes.* | WinZIP AES stream | No | | mz_strm_buf.* | Buffered stream | No | | mz_strm_bzip.* | BZIP2 stream using libbzip2 | No | | mz_strm_crc32.* | CRC32 stream | Yes | | mz_strm_lzma.* | LZMA stream using liblzma | zlib or liblzma | | mz_strm_mem.* | Memory stream | Yes | | mz_strm_split.* | Disk splitting stream | No | | mz_strm_pkcrypt.* | PKWARE traditional encryption stream | No | | mz_strm_posix.* | File stream using Posix functions | Non-windows systems | | mz_strm_win32.* | File stream using Win32 API functions | Windows systems | | mz_strm_zlib.* | Deflate stream using zlib | zlib or liblzma | | mz_zip.* | Zip format | Yes | | mz_zip_rw.* | Zip reader/writer | No |
Thanks to Gilles Vollant on which this work is originally based on.
Thanks go out to all the people who have taken the time to contribute code reviews, testing and/or patches. This project would not have been nearly as good without you.
The ZIP format was defined by Phil Katz of PKWARE.