Open newpavlov opened 5 years ago
Sounds like a good idea to me! I think a strategy similar to flate2
where the implementation is in a separate crate probably works best, and then this crate can multiplex backends as necessary.
The new bzip2 (C library) maintainer has actually started rewriting it in rust.
Granted, it does not look like they are being very active with development. No commits in more than 7 months.
Hello, I just published a pure Rust bzip2 decompressor implementation. I'll also probably work on the encoder in the future. In the meantime I already published a 0.1.0 on crates.io, which you can find here: https://crates.io/crates/bzip2-rs
@ohsnyt has a pure Rust bzip2 multi-threaded compressor and decompressor in progress, here: https://github.com/ohsnyt/bzip2-rust It is functional, but is not yet published on crates.io.
If anyone is interested in helping test, and fine tune it, I'm sure he would appreciate the help.
Are you interested in re-implementing
bzip2
in pure Rust or do you intend to keep it as a binding? (i.e. will you accept such work if anyone will be interested in it or not?)bzip2-sys
implementation could be kept as a feature-gated disabled by default option.Potential rewrite will help with the licensing issue and will help crates which target WASM.