Expand description
PPMd compression / decompression. It’s a port of the PPMd C-code from 7-Zip to Rust.
The following variants are provided:
- The PPMd7 (PPMdH) as used by the 7z archive format
- The PPMd8 (PPMdI rev.1) as used by the zip archive format
§Notice
There are two ways to properly bound the uncompressed data:
- Save the uncompressed size along the compressed data and use
std::io::Read::read_exact()to read the data (this is what is used in the 7z archive format). - Encode an end marker by calling
finish(true)on the encoder when finishing the encoder process. You can then usestd::io::Read::read_to_end()to read the data. You are of course free to also use thestd::io::Read::read_exact()if you have stored the uncompressed data size (this is what is used in the zip archive format).
Failing to do so will result in garbage symbols at the end of the actual data.
§Acknowledgement
This port is based on the 7zip version of PPMd by Igor Pavlov, which in turn was based on the PPMd var.H (2001) / PPMd var.I (2002) code by Dmitry Shkarin. The carryless range coder of PPMd8 was originally written by Dmitry Subbotin (1999).
§License
The code in this crate is in the public domain as the original code by their authors.
Structs§
- Ppmd7
Decoder - A decoder to decompress data using PPMd7 (PPMdH) with the 7z range coder.
- Ppmd7
Encoder - An encoder to compress data using PPMd7 (PPMdH) with the 7z range coder.
- Ppmd8
Decoder - A decoder to decompress data using PPMd8 (PPMdI rev.1).
- Ppmd8
Encoder - A encoder to compress data using PPMd8 (PPMdI rev.1).
Enums§
- Error
- Crate error type.
- Restore
Method - The restore method used in PPMd8.
Constants§
- PPMD7_
MAX_ MEM_ SIZE - The maximal memory that PPMd7 supports.
- PPMD7_
MAX_ ORDER - The maximal order PPMd7 supports.
- PPMD7_
MIN_ MEM_ SIZE - The minimal memory that PPMd7 supports.
- PPMD7_
MIN_ ORDER - The minimal order PPMd7 supports.
- PPMD8_
MAX_ MEM_ SIZE - The maximal memory that PPMd8 supports.
- PPMD8_
MAX_ ORDER - The maximal order PPMd8 supports.
- PPMD8_
MIN_ MEM_ SIZE - The minimal memory that PPMd8 supports.
- PPMD8_
MIN_ ORDER - The minimal order PPMd8 supports.
Type Aliases§
- Result
- Error type of the crate.