Skip to content

Bit7z v4.0.0 beta

Pre-release
Pre-release
Compare
Choose a tag to compare
@rikyoz rikyoz released this 10 Aug 17:28
a75e335

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 to BitArchiveReader.
  • Added support to extracting/testing the input archive of BitArchiveReader.
  • Made BitArchiveReader/BitInputArchive behave like an std 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 a BitException.
    • 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 to BitFileExtractor.
    • Now BitExtractor is just a template class for all the extraction classes.
  • Renamed the BitCompressor class to BitFileCompressor.
    • Now, BitCompressor is just a template class for all the compression classes.
  • Changed the default string type to std::string instead of std::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.
  • 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 👇