Skip to content
Peter Hyman edited this page Mar 4, 2021 · 11 revisions

Welcome to the lrzip-next wiki!

Here will be expanded documentation and thoughts on design decisions made.

Why lrzip-next?

Since 2019, I have been making enhancements to lrzip outside of the main branch. The goal was to keep improving lrzip. These enhancements, broadly, fall into only a few categories.

Significant changes

  • Update LZMA and ZPAQ SDK (this includes an x86_64 ASM Decompressor for lzma)
  • Revise computational algorithm for setting block sizes that are passed to back-end compressors to favor larger blocks over more threads
  • Add pre-compression filtering
  • Add ability to set LZMA Dictionary sizes
  • Add ability to set rzip compression level separately
  • Fine tuning ZPAQ compression to pass 3 method parameters to compressor
  • Validation of file prior to decompression/testing
  • One-byte change to the magic header to account for filtering. This breaks compatibility with lrzip v0.6xx.

Other changes include

  • Updating help and info output to make it more clear what options are
  • Man page and Readme updates
  • Fix Threshold testing so that a value can be used to limit "compressibility" testing by specifying a percent (i.e. -T75)
  • Optimize use of memory overhead
  • Creation of a dialog-based front-end for lrzip, lrzip-fe which can be pulled as a sub-module
  • Precise versioning that reflects git revision and commit (Note: This breaks downloading a zip file from git), git pull/fetch/clone must be used).

Along the way, bugs and CVEs were corrected. Every attempt is made to include fixes and changes to the main branch, but this is not a fork of lrzip. It's a standalone project.

As my fixes and enhancements piled up, lrzip-next diverged to a point that merging the changes with the main branch became impossible.

These pages will explain some of the changes in detail, and why they were made, the intended benefits, with code snippets.

Please feel free to contribute and help improve lrzip-next. Currently, there are no plans to have any of these changes integrated into the main lrzip repository.