PPMd compression/decompression library
Project description
PPM(Prediction by partial matching) is a compression algorithm which has several variations of implementations. PPMd is the implementation by Dmitry Shkarin. It is used in the RAR by default and by 7-Zip as one of several possible methods.
ppmd, aka. ppmd-cffi, is a python bindings with PPMd implementation by C language. Core codes are derived from p7zip, portable 7-zip implementation, and now only consist of Ppmd7, PPMd ver.H.
Since 7-zip uses PPMd ver.H and RAR uses PPMd ver.I, the ppmd-cffi is considered compatible with 7-zip’s implementation.
Installation
As usual, you can install ppmd-cffi using python standard pip command. CAUTION: Since it is a bindings with C source code, C compiler should be installed on your operating system.
` pip install ppmd-cffi `
All C source codes are bundled with ppmd-cffi package.
Usage
ppmd-cffi provide two classes. Both class supports context manager, ie. with … as .. syntax.
Encoder
Encoder class provide PPMd encoder. It has encode(), flush() and close() methos.
Decoder
Decoder class pvoride PPMd decoder. It has decode() and close() methods.
Please see test code for a detailed usage.
License
Copyright (C) 2020 Hiroshi Miura
7-Zip Copyright (C) 1999-2010 Igor Pavlov
LZMA SDK Copyright (C) 1999-2010 Igor Pavlov
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for ppmd_cffi-0.2.2-cp38-cp38-manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e9e0394f7da7b2e9db4934be4936f1c69f459559f26c647b7d5985c44c422f46 |
|
MD5 | cadcf6f016706b5e5d4275e346c1d8f7 |
|
BLAKE2b-256 | 4160af2b7eb6b7f51b5814018d6794984dcf9a675b7e5ab9b4ad343ac1d74c91 |
Hashes for ppmd_cffi-0.2.2-cp37-cp37m-manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e69eb41c35fb5d770459a386082d0ef76adb9f3b671fc6ddafd30d44f8cba156 |
|
MD5 | eb65d2b97f6b2807f474dbbd8ffd3823 |
|
BLAKE2b-256 | 90c00b6def466c82fcc9c7b8d99b2eea92fc0e3f13cfe671931f3bcfda2caa1c |
Hashes for ppmd_cffi-0.2.2-cp36-cp36m-manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e32f07180a7429be80dc3c74adf185703edd9204c7303deceff3618b653ba66c |
|
MD5 | 0b8fe9e47069bd098eea2ca626dbc2e0 |
|
BLAKE2b-256 | c9356796d067ce356c01e6fec9723f6dfe74a6365f6b61f204a568e0af28edd1 |