A C++ static library providing a clean, cross-platform interface to 7-Zip for archive compression and extraction.
bit7z is a C++ static library that provides a clean, object-oriented interface to the 7-Zip shared libraries for compressing and extracting archive files. It solves the problem of integrating 7-Zip's powerful but low-level C API into modern C++ applications by offering a type-safe, exception-based wrapper that supports a wide range of formats and advanced features like memory operations and encryption.
C++ developers who need to programmatically handle archive files (compression, extraction, inspection) in cross-platform applications, particularly those already using or requiring 7-Zip's format support and compression algorithms.
Developers choose bit7z for its modern C++ API that drastically simplifies using 7-Zip compared to its native interface, its comprehensive feature set matching 7-Zip's capabilities, and its true cross-platform support with consistent behavior across Windows, Linux, and macOS.
A C++ static library offering a clean and simple interface to the 7-zip shared libraries.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports compression to 7z, ZIP, GZIP, etc., and extraction of over 40 formats including RAR and ISO, matching 7-Zip's native capabilities as listed in the README's features section.
Provides a clean, type-safe, and exception-based wrapper that abstracts 7-Zip's complex C API, with examples showing simple usage for extraction and compression.
Works on Windows, Linux, macOS, and BSD across x86, x64, arm, and arm64 architectures, confirmed by badges and requirements in the README.
Enables compression and extraction directly to/from memory buffers and C++ standard streams, with code examples demonstrating in-memory handling.
Offers encryption, multi-volume archives, progress callbacks, and selective extraction using wildcards or regex, as detailed in the supported features list.
Requires separate 7-Zip shared libraries (DLLs/SOs) that are not bundled, adding deployment complexity and version management headaches, as noted in the requirements section.
RAR extraction only works with 7-Zip's 7z.so, not p7zip's plugin, forcing users to build 7-Zip from source on Linux/macOS, a limitation explicitly mentioned in the README.
Default UTF-8 encoding on Windows requires manual handling or configuration changes (e.g., BIT7Z_USE_NATIVE_STRING), complicating cross-platform development, as detailed in the configuration section.
Version 4 introduced significant breaking changes like renamed classes and UTF-8 switch, requiring code updates for upgrades, with a dedicated section in the README outlining migration challenges.