Bit7z v4.0.0 beta
Pre-release
Pre-release
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 👇