Skip Navigation Links
Skip Navigation LinksHome > ZipArchive > History of Changes
History of Changes in the ZipArchive Library
Applies To: All

5.0.0 (2026-03-19)

New Features

  • Hardware AES acceleration support (Intel AES-NI and ARM Crypto Extensions). Provides 8-14x speedup for AES encryption/decryption operations. Automatically detected at runtime and enabled by default via ZIP_USE_HWAES CMake option or _ZIP_USE_HWAES preprocessor definition.
  • Implemented ZSTD compression using Zstandard library (thanks to Roman Scherzer for help). See Compressing Data
  • CMake support - see Compilation of the ZipArchive Library and Integration with Applications. This is now the recommended way of compiling the library, especially that Visual Studio now supports CMake projects as well. Visual Studio project files are still maintained. Linux and MinGW makefiles are replaced now by CMake. It allows cross-platform compilation for various architectures (x86, x64, ARM64).
  • Visual Studio 2026 project files added. The library now uses them by default.
  • Support for replacing zlib library with zlib-ng. See Compilation of the ZipArchive Library and Integration with Applications for more information.
  • Implemented ZipPlatform::IsDriveRemovable under Linux/macOS.
  • Hardware CRC-32 acceleration support (Intel PCLMULQDQ with SSE4.1 and ARM CRC32 instructions). Automatically detected at runtime and enabled by default via ZIP_USE_HWCRC CMake option or _ZIP_USE_HWCRC preprocessor definition.
  • Zippie now supports ZSTD through the -cm switch. -bz switch was removed to handle compression methods more efficiently.

Changes

  • Feature control macros in _features.h are now value-based instead of presence-based. They must be set to 1 to enable or 0 to disable, rather than being defined or undefined. This applies to:
    • _ZIP_ZIP64
    • _ZIP_AES
    • _ZIP_BZIP2
    • _ZIP_BZIP2_INTERNAL
    • _ZIP_ZSTD
    • _ZIP_ZSTD_INTERNAL (new)
    • _ZIP_SEEK
    • _ZIP_UNICODE
    • _ZIP_UNICODE_CUSTOM
    • _ZIP_UNICODE_NORMALIZE
    • _ZIP_USE_LOCKING
    • _ZIP_STRICT_U16
    When building with CMake, these are controlled by corresponding ZIP_ENABLE_* or ZIP_USE_*_INTERNAL options.
  • The Zlib library updated to version 1.3.2; see the Zlib library change log for more information.
  • The bUseUtcTime parameter that was removed from the CZipFileHeader::SetModificationTime method. It will be set according to the current CZipArchive::IsUseUtcFileTimes value when adding the file to the archive. The times will be converted accordingly.
  • When a file in an archive that was created under Windows contains Unix attributes stored in bits 31-16, and the current system is Linux/macOS, those will be used instead of trying to convert DOS attributes to Unix attributes. Still 755 will be used for folders.

Bugs Fixed

  • CZipArchive::PredictFileNameInZip now correctly removes leading path separators under Linux/macOS.
  • Fixes to getting times from CZipFileHeader to properly use local / UTC conversion.
  • Fixed the problem where creating a new entry ending with a path separator was not creating a directory entry in the archive under Linux/macOS, but a regular file.

Previous History

To see the history of previous versions, please visit Archived History of Changes in the ZipArchive Library
Article ID: history
Back To Top Up