ribzip2
ribzip2 copied to clipboard
A bzip2 implementation in pure Rust.
An attempt to solve #18. It seems to be a feasible goal. Further steps - [ ] improve docs and make the `Read` implementation the preferred way - [ ]...
`ribzip2` uses a very naive representation of Huffman codes and also writes them in a naive way: it uses dynamically allocated arrays of enums. Also at other places the habit...
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...
The library usage is currently poorly documented. Moreover, the only existing tests testing compression / decompression end-to-end. Let's solve these problems at once! * write round-trip unit tests for `libribzip2`...
Although asymptotically BWT is the most expensive operation during compression, only 40% is spent during BWT. There are some hot spots which are potentially easy to fix: - [x] `ribzip2::lib::block::zle::zle_transform`...
Provide error types for compression and decompression. There should be * a type for compression basically wrapping IO errors * a type for decompression basically wrapping IO errors or a...
Allow automatic publication of crate to crates.io on merge. One proposal would be using https://github.com/kettleby/semantic-release-rust and semantic commit format. One important requirement would be introducing a commit message lint for...