Urgent.News

What's breaking now, across thousands of outlets.

Tech

bzip3: A better and stronger spiritual successor to BZip2

A better, faster and stronger spiritual successor to BZip2, bzip3 boasts higher compression ratios and improved performance due to features such as an order-0 context mixing entropy coder, a fast Burrows-Wheeler transform code leveraging suffix arrays, and a RLE with LZ77-style string matching and PPM-style context modeling. Designed to excel at compressing text or code, bzip3 is an alternative to its ancestor, BZip2.

To install bzip3, users can utilize their system's package manager. For macOS, Homebrew provides an easy installation process. The author conducted tests by downloading every version of Perl5 ever released, decompressing them, and then compressing the resulting .tar files using various compressors. After long-range deduplication with lrzip, bzip3 was used to compress the none.tar.lrz file. For further comparisons, one can refer to powturbo's benchmark of bzip3, bzip2, bsc, and others.

The author assumes all responsibility for any data loss resulting from the use of this program/library. They have made extensive efforts to ensure the program's correctness, but given the complexity of the algorithms and the presence of special cases with very low but non-zero probability, bugs may still exist. Therefore, it is strongly advised not to compress any data using bzip3 unless one is prepared to accept the possibility, however small, that the data may not be recoverable.

Bzip3's performance varies depending on the compiler. On x64 Linux with clang13, compression rates can reach up to 17MiB/s and decompression rates up to 23MiB/s per thread. However, Windows and 32-bit builds may experience slower performance. The program has been tested on multiple architectures, and its licensing is under LGPLv3. Bzip3 itself is licensed under LGPLv3, but it is not dual-licensed under LGPLv3 and Apache 2.0.

Written by urgent.news from Lobsters's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at github.com →

More in Tech

Enjoying coding again

I Have a Job — I Just Need to Do It A few months ago, I left my last job as a remote Unity developer. Before leaving, I had already started working on a freelance project to build a multi-tenant…

More from Monday 7 September →