8 releases (4 breaking)

0.5.0 Mar 31, 2022
0.4.0 Mar 11, 2022
0.3.2 Jan 29, 2022
0.2.0 Jan 29, 2022
0.1.3 Jan 14, 2022

#1838 in Command line utilities

MIT license

635KB
3.5K SLoC

ribzip2 - a comprehensible bzip2 implementation

ribzip2 is command line utility providing bzip2 compression and decompression written in pure Rust. It is currently considered work-in-progress and lacks many features of the original implementation including

  • it has worse compression rate
  • it is slower (at least factor 2)

Usage

Beware that ribzip2 is WIP. If you absolutely want to, install ribzip2 using cargo install ribzip2. You can use ribzip2 compress <FILENAME> to compress a file and ribzip2 decompress <FILENAME>. The latter will output from file.bz2 to file.out. For further information use the help subcommand and the respective help options of compress and decompress, e.g. ribzip2 compress --help.

Design Goals

Goals

  • "enterprise style" comprehensible code equipped with tests explaining the involved algorithmns
  • pure rust
  • safe code
  • state-of-the-art algorithms with optimal asymptotic performance
  • efficient multithreading
  • ergonomic cli

Long-Term-Goals

  • ergonomic library crate
  • drop-in replacement for the bzip2 crate
  • drop-in replacement for C libbzip2
  • drop-in replacement for the C bzip2/bunzip2 binary

Publishing

We use the crate cargo-workspaces for publishing releases manually. Currently, there is no automation in place.

Contribute!

Contributions are very welcome (issues, pull-requests, and comments). Find your issue under "issues". The code here (exlcuding samples using for compression tests) is published under the MIT license.

Dependencies

~4MB
~69K SLoC