Releases: rikyoz/bit7z
Bit7z v4.0.0 RC
Changes from v4.0.0-beta:
- Fixed
BitAbstractArchiveCreator
not respecting the retaining directories option. - Incremented the minimum CMake version needed to v3.11.
- Added an initial unit test subproject (can be enabled via the
BIT7Z_BUILD_TESTS
option).- I will make it more complete over time.
- Fixed
BitOutputArchive::addItems
not respecting the file indexing options. - Fixed issue #112.
- Fixed typo in
guids.cpp
andguids.hpp
(issue #113). - Fixed linking when using some versions of MinGW.
- Fixed public API support to C++11.
- Fixed compilation on Windows with native strings enabled.
- Fixed some edge cases in the wildcard matching function.
- Added a basic
OverwriteMode
enum that allows configuring how to deal with when an output file or buffer already exists (issue #116). It works for both compressors and extractors.None
: The archive handler will throw an exception.Overwrite
: The handler will overwrite the old file or buffer with the new one.Skip
: The handler will skip writing to the output file or buffer.
- Removed the beta's
UpdateMode::OverwriteArchive
enumerator: the same result can be achieved by settingOverwriteMode::Overwrite
. - Added a getter for the CRC value of a
BitArchiveItem
. - Added
UpdateMode::Update
and deprecatedUpdateMode::Overwrite
. - Deprecated
BitAbstractArchiveCreator::setUpdateMode(bool)
. - Allow extracting multi-volume archives without writing the full archive (issue #107).
- Fixed
CVolumeOutStream
calling the wrong parent classSetSize
method. - Added option for generating Position Independent Code (issue #117).
- Allow setting archive format properties as described in the 7-zip docs (close issues #91 and #103).
- Added
posixCode()
method toBitException
. - Added option to link to libc++ on Clang.
- Moved public API headers to the
include/bit7z/
folder. - Fixed building on 32-bit architectures.
- Added an option to automatically prepend paths with the long path prefix (issue #45)
- Added an option to build the Doxygen documentation.
- Clean up code and fix code formatting.
Full Changelog: a75e335...ac49527
Changes from v3.2.x:
- Added support to Linux and macOS (issue #19).
- Added support to the MinGW compiler.
- Dropped support to old MSVC 2012 and 2013.
- The project requires at least a C++14 compiler to build; the public API is still C++11-compatible.
- Removed QMake and MSBuild project files: now bit7z uses only CMake as its build system.
- Removed format restriction to memory compression.
- Renamed
BitArchiveInfo
toBitArchiveReader
. - Added support to extracting/testing the input archive of
BitArchiveReader
. - Made
BitArchiveReader
/BitInputArchive
behave like anstd
container (e.g., added iterators). - Added support for canceling ongoing operation in progress callback (issue #37).
- Added support to set the number of threads used when compressing (issue #38).
- Added support for extracting without retaining the directory structure (issue #34).
- Added the possibility to choose the word size to use when compressing.
- Added the
BitArchiveWriter
class that allows creating a single new archive or updating an old one with new items. - Added the
BitArchiveEditor
class that allows editing existing archives.- Added support for renaming/deleting items inside an archive (issue #43).
- Added different archive update modes:
None
: Trying to update and archive will throw aBitException
.Append
: New items will be appended to the archive (i.e., the old update behavior).Overwrite
: New items whose path already exists in the archive will be overwritten, and others will be appended.
- Changed file callback to make it report the full path of the file (issue #46).
- Added the possibility to extract a specific file to buffer (issue #32).
- Fixed and improve the public API.
- Renamed the
BitExtractor
class toBitFileExtractor
.- Now,
BitExtractor
is just a template class for all the extraction classes.
- Now,
- Renamed the
BitCompressor
class toBitFileCompressor
.- Now,
BitCompressor
is just a template class for all the compression classes.
- Now,
- Changed the default string type to
std::string
instead ofstd::wstring
.- Input strings are considered UTF-8 encoded: the project will follow the UTF-8 Everywhere Manifesto.
- This allows using the library in cross-platform projects more quickly.
- You can still achieve the old behavior by using bit7z with the
-DBIT7Z_USE_NATIVE_STRING
CMake option. In this case:- On Windows, the default string type will be
std::wstring
(as in bit7z v3); - On Linux and macOS, it will remain
std::string
.
- On Windows, the default string type will be
- Re-licensed the project under the MPLv2 (issue #86).
Full Changelog: v3.2.0...v4.0.0-rc
Binaries built using Clang10, GCC 9, MinGW 8, MSVC 2015, 2017, 2019, and 2022 👇
Bit7z v3.2.0
Changes from v3.2.0:
- Added support for extracting multi-volume archives without creating the intermediate whole archive (by @anywhereyang: #110).
- Updated project configuration files.
Full Changelog: v3.1.5...v3.2.0
Binaries built using MSVC 2015, 2017, and 2019 👇
Bit7z v4.0.0 beta
Changes from v3.1.x:
- Added support to Linux and macOS (issue #19).
- Added support to MinGW compiler.
- Dropped support to old MSVC 2012 and 2013.
- Now the project uses the C++14 standard.
- Removed format restriction to memory compression.
- Renamed
BitArchiveInfo
toBitArchiveReader
. - Added support to extracting/testing the input archive of
BitArchiveReader
. - Made
BitArchiveReader
/BitInputArchive
behave like anstd
container (e.g., added iterators). - Added support for canceling ongoing operation in progress callback (issue #37).
- Added support to set the number of threads used when compressing (issue #38).
- Added support for extracting without retaining the directory structure (issue #34).
- Added the possibility to choose the word size to be used when compressing.
- Added the
BitArchiveWriter
class that allows creating a single new archive or updating an old one with new items. - Added the
BitArchiveEditor
class that allows editing existing archives.- Added support for renaming/deleting items inside an archive (issue #43).
- Added different archive update modes:
None
: Trying to update and archive will throw aBitException
.Append
: New items will be appended to the archive (i.e., the old update behavior).Overwrite
: New items whose path already exists in the archive will be overwritten, and other will be appended.OverwriteArchive
: The output archive will be deleted and recreated (unless it is a multi-volume archive, in which case an exception is thrown).
- Changed file callback to make it report the full path of the file (issue #46).
- Added the possibility to extract a specific file to buffer (issue #32).
- Fixed and improve the public API.
- Renamed the
BitExtractor
class toBitFileExtractor
.- Now
BitExtractor
is just a template class for all the extraction classes.
- Now
- Renamed the
BitCompressor
class toBitFileCompressor
.- Now,
BitCompressor
is just a template class for all the compression classes.
- Now,
- Changed the default string type to
std::string
instead ofstd::wstring
.- Input strings are considered UTF-8 encoded: the project will follow the UTF-8 Everywhere Manifesto.
- This allows using the library in cross-platform projects more quickly.
- You can still achieve the old behavior by using bit7z with the
-DBIT7Z_USE_NATIVE_STRING
CMake option. In this case:- On Windows, the default string type will be
std::wstring
(as in bit7z v3); - On Linux and macOS, it will remain
std::string
.
- On Windows, the default string type will be
- Re-licensed the project under the MPLv2 (issue #86).
Full Changelog: v3.1.5...v4.0.0-beta
Binaries built using Clang10, GCC 9, MinGW 8, MSVC 2015, 2017, and 2019 👇
Bit7z v3.1.5
Changes from v3.1.4:
- Fixed CMake target_include_directories scope by @evilenzo in #60
- BitException::getErrorCode() marked as 'const' by @DymOK93 in #64
Full Changelog: v3.1.4...v3.1.5
Binaries built using MSVC 2015, 2017 and 2019 👇
Bit7z v3.1.4
Changes from v3.1.3:
- Fix issue #54: now
BitArchiveItem
s are both copyable and movable, allowing vectors of items (e.g.,BitArchiveInfo::items()
) to be manipulated by the C++ standard algorithms likestd::sort
.
Binaries built using MSVC 2015, 2017 and 2019 👇
Bit7z v3.1.3
Changes from v3.1.2:
- Fix memory issues with BitPropVariants and callbacks
Binaries built using MSVC 2015, 2017 and 2019 👇
Bit7z v3.1.2
Changes from v3.1.1:
- Fix custom folder name not applied to path of children files when compressing archives
Binaries built using MSVC 2015, 2017 and 2019 👇
Bit7z v3.1.1
Changes from v3.1.0:
- Fix support for header encrypted archives to BitArchiveInfo
Binaries built using MSVC 2015, 2017 and 2019 👇
Bit7z v3.1.0
Changes from v3.1.0 beta:
- Added
CMakeLists.txt
. - Fixed support to MSVC 2013
- Fixed
Bit7zLibrary
not releasing the DLL if it fails in getting the "CreateObject" function. - Fixed and improved README.
- Cleaned code.
Changes from v3.0.x:
- Added support for updating existing file archives.
- Added support for compression and extraction to and from C++ standard streams.
- Added support for selective extraction using regexes.
- Added support for automatic format detection of input archives.
- Added the possibility to choose the compression method.
- Added the possibility to choose the compression dictionary size.
- Fixed, improved and cleaned internal callbacks.
- Many bug fixes.
- Cleaned code.
- Updated and improved code documentation.
Note: for space optimization reasons, the following binary files are built without support to selective extraction using regexes and automatic format detection. If you need one or both these function, you have to build bit7z yourself with the appropriate compilation flags (please see this wiki for more info).
Note 2: Each of the following packages contains both debug and release versions of the library, along with the public API header files.
Note 3: Packages with _mt_
in the name contain binaries built using the /MT
flag (/MTd
for debug binaries).
Binaries built using MSVC 2015, 2017 and 2019 👇
Bit7z v3.1.0 beta
Binaries built using MSVC 2015, 2017 and 2019 👇
Release Details
Changes from v3.0.x:
- Added support for updating existing file archives.
- Added support for compression and extraction to and from C++ standard streams.
- Added support for selective extraction using regexes.
- Added support for automatic format detection of input archives.
- Added the possibility to choose the compression method.
- Added the possibility to choose the compression dictionary size.
- Fixed, improved and cleaned internal callbacks.
- Many bug fixes.
- Cleaned code.
- Updated and improved code documentation.
Note: for space optimization reasons, the following binary files are built without support to selective extraction using regexes and automatic format detection. If you need one or both these function, you have to build bit7z yourself with the appropriate compilation flags (please see this wiki for more info).
Note 2: Each of the following packages contains both debug and release versions of the library, along with the public API header files.
Note 3: Packages with _mt_
in the name contain binaries built using the /MT
flag (/MTd
for debug binaries).