bzip3

414 points · 119 comments on HN · read original →

Points and comments are a snapshot, not live.

BZip3 claims higher compression ratios and speed than bzip2 using Burrows-Wheeler transform and context mixing.

BZip3 is a spiritual successor to bzip2, using an order-0 context mixing entropy coder, suffix-array-based Burrows-Wheeler transform, and LZ77-style string matching with PPM modeling. Benchmarks on all Perl5 source tarballs show bzip3 with -b 511 compresses to 546 MB versus bzip2's 3,441 MB, xz's 2,056 MB, and zstd -16's 3,076 MB. Parallel decompression took 4:06 versus bzip2's 9:22 and zstd's 3:51. Combined with lrzip, bzip3 achieved 60 MB. Performance is highly compiler- and data-dependent. Licensed under LGPLv3.

What commenters are saying

Commenters critiqued the benchmark as cherry-picked: bzip3 used a 512 MB block size while zstd used default 8 MB window; re-running with zstd --long=29 compressed to 196 MB versus bzip3's 546 MB. Others noted bzip3's performance is unpredictable across different data types. Decompression memory and speed were flagged as major drawbacks-bzip3 uses 3.2 GB and 90 seconds for enwik9 versus zstd's 128 MB and 1 second. Some found the tool interesting but impractical for general use.