The bzip2 crate is a wrapper around the original C bzip2 implementation and has a Read/Write interface. The goal of this issue is to write such an interface as well for libribzip2 such that it could serve as a drop-in replacement for this library.
In a first step I would not make the block size configurable (as in the original implementation). The reason for the original design decision is that the complexity of the algorithm used is log n n (coming from fat pivot radix sort). We are using only linear time algorithms so run time should not be an issue (I would skip discussions about memory for now). You could either
- ignore the
Compression struct in bzip2 completely
- re-interpret it as carrying information about the Huffman Code optimization taking place
At will.
This issue is mentored and I am trying to give you best support possible (on top of my every day job as developer).
The
bzip2crate is a wrapper around the original Cbzip2implementation and has aRead/Writeinterface. The goal of this issue is to write such an interface as well forlibribzip2such that it could serve as a drop-in replacement for this library.In a first step I would not make the block size configurable (as in the original implementation). The reason for the original design decision is that the complexity of the algorithm used is
log n n(coming from fat pivot radix sort). We are using only linear time algorithms so run time should not be an issue (I would skip discussions about memory for now). You could eitherCompressionstruct inbzip2completelyAt will.
This issue is mentored and I am trying to give you best support possible (on top of my every day job as developer).