Please note: this is just a quick experiment to see how it would work, it is not production quality, and has not been properly tested.
Here are some results on the Silesia compression corpus:
Where crush is the original CRUSH v1.00, and crushx is an implementation of crush with optimal parsing posted on Encode's Forum.
bcrush uses Meson to generate build systems. To create one for the tools on your platform, and build bcrush, use something along the lines of:
mkdir build cd build meson .. ninja
You can also simply compile and link the source files.
bcrush includes the leparse and ssparse algorithms from BriefLZ, which gives
-9 and the very slow
- The CRUSH format does not store the size of the compressed block, so I copied the way the CRUSH depacker reads one byte at a time from the file to avoid issues with reading the next block into memory.
- bcrush only hashes 3 bytes to find matches, which makes it slow on files with many small matches. It might benefit from using two hash tables like CRUSH.
This projected is licensed under the zlib License (Zlib).