Go to file
winlogon 2245581d10
Some checks failed
CI/CD / Checking fmt and docs (push) Failing after 9m1s
CI/CD / clippy (push) Failing after 9m23s
CI/CD / Build and test (push) Failing after 10m16s
refactor: rename crate and improve functionality
* Renamed the crate from "ppmd-rs" to "ppmd".
* Introduced a custom error type, CompressionError, to handle errors
  that may occur during compression and decompression operations.
* Improved the compression and decompression functionality by adding
  more informative error messages and better handling of file I/O operations.
2024-11-11 23:29:59 +01:00
.github/workflows fix workflows 2024-10-27 14:55:34 +01:00
src refactor: rename crate and improve functionality 2024-11-11 23:29:59 +01:00
tests feat: bunch of significant changes 2022-01-29 22:51:26 +03:00
.gitignore feat: initial commit 2022-01-29 11:37:07 +03:00
Cargo.toml refactor: rename crate and improve functionality 2024-11-11 23:29:59 +01:00
LICENSE Initial commit 2022-01-29 11:30:32 +03:00
README.md feat: bunch of significant changes 2022-01-29 22:51:26 +03:00

ppmd-rs

Library that implements different versions of PPMD algorithm (compress and decompress)

Dependencies

  • Rust 1.58 or newer
  • Cargo

How to build

  • Clone this repository
  • cargo build --release

Implementation details

Initially, the library was ported from C version of PPMD, based on this implementation: https://github.com/svpv/ppmd-mini , then with C2Rust it was converted to Rust and hacked a little.

Feedback

If you have any suggestions or want to report a bug - feel free to create an issue in this repo. Thank you!

  • Wiki about the algorithm
  • C++ PPMD implementation
  • C PPMD implementation (implemented only 7-Zip "I" variant)