Libzip

libzip is an open source library for handling zip archives. It is written in portable C and can thus be used on multiple operating systems. It is based on zlib. It is used by PHP's zip extension for zip file support and MySQL Workbench. It is also used by KDE's ark archiving tool for zip archive support.

Notable features
libzip supports reading and writing zip archives. In particular, it allows extracting single or multiple files and querying their attributes (including extra fields and comments). For writing, it allows replacing files or adding new ones; the data can come from buffers, files, or even other zip archives (without recompression). Extra field data and comments (both file and archive) can be added, modified, or deleted. All changes are finalized when closing the archive, so the on-disk archive is always self-consistent.

The zip64 extension for large files is also supported. Version 1.2.0 added support for encryption and decryption using AES, while version 1.3.0 added support for compression using bzip2. Version 1.7.0 added support for traditional PKWARE encryption. Version 1.8.0 added support for Zstandard and lzma.

When opening existing archives, a strict consistency check can be requested.

libzip is written in C but can be used from C++.

Since version 1.1, libzip contains ziptool, a tool for modifying zip archives from the command line.