All formats

ZIP libraries

Open-source libraries that read and write ZIP archives. Most languages have ZIP in the standard library (Go, Python, Java, .NET, PHP); use a third-party library when you need AES encryption, newer compression methods (Zstandard, LZMA, XZ), split archives or more control over entry metadata.

Language Library Read Write Notes
C/C++ libzip yes yes full-featured, AES, modify archives in place
C/C++ minizip-ng yes yes AES, many methods, minizip compatibility layer
C/C++ libarchive yes yes one API for ZIP, tar, 7z, RAR (read) and more
C/C++ miniz yes yes single file, no dependencies, DEFLATE only
C# System.IO.Compression yes yes built into .NET, no encryption
C# SharpZipLib yes yes AES and ZipCrypto, streaming
C# SharpCompress yes yes ZIP, RAR, 7z, tar; forward-only streams
Java java.util.zip yes yes built into the JDK, no encryption
Java Apache Commons Compress yes yes Unix permissions, ZIP64, split archives
Java zip4j yes yes AES and ZipCrypto, simple API
Go archive/zip yes yes standard library
Python zipfile yes yes standard library; decrypts ZipCrypto only
Ruby rubyzip yes yes the standard Ruby gem, AES in 3.x
Rust zip yes yes pure Rust, AES, Zstandard, LZMA
PHP ZipArchive yes yes bundled zip extension on top of libzip

By language#