diff options
Diffstat (limited to 'vendor/zune-inflate/README.md')
-rw-r--r-- | vendor/zune-inflate/README.md | 120 |
1 files changed, 0 insertions, 120 deletions
diff --git a/vendor/zune-inflate/README.md b/vendor/zune-inflate/README.md deleted file mode 100644 index 21b5850..0000000 --- a/vendor/zune-inflate/README.md +++ /dev/null @@ -1,120 +0,0 @@ -# zune-inflate - -This crate features an optimized inflate algorithm supporting -whole buffer decompression. - -Supported formats are - -- raw deflate -- zlib (deflate with a zlib wrapper on) -- gzip - -The implementation is heavily based on Eric Biggers [libdeflate] and hence -has similar characteristics. - -Specifically, we do not support streaming decompression but prefer whole buffer decompression. - -## Installation - -To use in your crate, simply add the following in your -Cargo.toml - -```toml -[dependencies] -#other amazing crates from other amazing people -zune-inflate = "0.2.0" -``` - -## Features - -One can enable or disable a specific format using -cargo features. - -Specifically, the following can be enabled - -- `gzip`: Enable decompressing of gzip encoded data -- `zlib`: Enable decompressing of zlib encoded data - -To enable one feature, modify `Cargo.toml` entry to be - -```toml -[dependencies] -zune-inflate = { version = "0.2", default-features = false, features = ["#ADD_SPECIFIC_FEATURE"] } -``` - -## Usage. - -The library exposes a simple API for decompressing -data, and depending on what type of data you have, you typically choose -one of the `decode[_suffix]` function to decode your data - -The decompressor expects the whole buffer handed upfront - -### Decoding raw deflate - -To decode raw deflate data, the following code should get you -started. - -```rust -use zune_inflate::DeflateDecoder; -let totally_valid_data = [0; 23]; -let mut decoder = DeflateDecoder::new( & totally_valid_data); -// panic on errors, because that's the cool way to go -let decompressed_data = decoder.decode_deflate().unwrap(); -``` - -### Decoding zlib - -To decode deflate data wrapped in zlib, the following code should get you -started. - -```rust -use zune_inflate::DeflateDecoder; -let totally_valid_data = [0; 23]; -let mut decoder = DeflateDecoder::new( & totally_valid_data); -// panic on errors, because that's the cool way to go -let decompressed_data = decoder.decode_zlib().unwrap(); -``` - -### Advanced usage - -There are advanced options specified by `DeflateOptions` which can change -decompression settings. - -## Comparisions. - -I'll compare this with `flate2` with `miniz-oxide` backend. - -| feature | `zune-inflate` | `flate2` | -|-------------------------|----------------|-------------------| -| zlib decompression | yes | yes | -| delfate decompression | yes | yes | -| gzip | yes | yes | -| compression | soon | yes | -| streaming decompression | no | yes | -| **unsafe** | no | yes<sup>[1]</sup> | - -<sup>[1]</sup> Flate writes to an uninitialized buffer - -As you can see, there are some concrete features we currently lack when compared to -flate2/miniz-oxide. - -There's actually nothing riding in for us, except...it's wickedly fast... - -### Benchmarks - -Up-to date benchmarks are done using criterion and hosted online at [zune-benchmarks] site, -benchmarks for this library have the `inflate: ` prefix. - - -## Fuzzing - -The decoder is currently fuzzed for correctness by both `miniz-oxide` and `zlib-ng`, see the fuzz/src directory - -[libdeflater]: https://github.com/adamkewley/libdeflater - -[libdeflate]:https://github.com/ebiggers/libdeflate - -[criterion]:https://github.com/bheisler/criterion.rs - -[zune-benchmarks]:https://etemesi254.github.io/posts/Zune-Benchmarks/
\ No newline at end of file |