Yunqa • The Delphi Inspiration

Delphi Components and Applications

User Tools

Site Tools


products:zip:index

YuZip

YuZip is a Delphi library to create, open, extract from, and modify ZIP archives with multiple algorithms for compression (deflate, bzip2, LZMA, PPMd, XZ, zStandard) and encryption (AES, PKWARE).

Overview

YuZip is a library to manipulate ZIP archives for Delphi (Embarcadero / CodeGear / Borland). All code is statically linked, no DLLs needed.

YuZip's two main units are:

  • YuZip.pas, a Delphi port of the popuplar libzip C library with complete ZIP archive manipulation capabilities.
    YuZip Archive Manager libzip is widely used in many commercial and open source products like Adobe, Chrome, PHP, and even Mercedes cars.
  • DIZipWriter.pas contains the  TDIZipWriter class which is optimized to create new ZIP archives and compress even huge files using minimal memory only. It cannot open existing ones.

YuZip Features

  • Create new ZIP archives – YuZip.pas and DIZipWriter.pas.
    • Add and compress from files, buffers, or streams.
  • Open existing ZIP archives – YuZip.pas only.
    • Extract to file, buffer, or streams.
    • Modify from files, buffer, or streams.
    • Change compression, encryption, and password.
  • ZIP64 format supports files larger than 4 GB.
  • Unicode filenames with automatic code page conversion.
  • Comments for individual files and entire archive.
  • Create self-extracting archives (SFX).
  • Progress / cancel events.

Compression Algorithms

  • Deflate.
  • Bzip2.
  • LZMA.
  • PPMd – Currently TDIZipWriter only.
  • XZ.
  • zStandard.

Encryption Algorithms

  • WinZip AES – strong, with 128, 192, and 256 bits key sizes.
  • Original PKWARE – weak, no longer recommended.

Product History

YuZip came to live as DIZipWriter in 2002. Its main component was the TDIZipWriter class to create new ZIP archives, with simple interfaces to add data from files, buffers, streams, and objects. The technical goals of TDIZipWriter have been to write ZIP archives fast, without temporary files, and use no DLLs. All of them are successfully met up to today.

In 2005, DIZipWriter added AES encryption, making it the only Delphi library to support the same strong encryption method which was introduced by WinZip 9.0 and has since developed into the de facto standard for ZIP encryption.

As more effective compression algorithms entered the ZIP specification, DIZipWriter introduced a pluggable abstract compression class with implementations for bzip2 and LZMA in 2013. XZ and zStandard followed in 2021, PPMd in 2022.

DIZipWriter was designed to export or backup data to ZIP archives and still serves this purpose well. However, users kept asking for features to open existing ZIP archives to extract and modify data, and to add new data. The popuplar libzip C library meets these demands and was also suited to be ported to Delphi. In 2023, the new YuZip.pas unit was released alongside the original DIZipWriter.pas unit and the name changed from DIZipWriter to YuZip.

YuZip is now the most extensive ZIP archive handling library for Delphi.

3rd Party Problems Detected During YuLib Development

products/zip/index.txt · Last modified: 2023/07/20 12:05 by 127.0.0.1