A pure Python implementation of LZRW1/KH compression algorithm
Project description
python-lzrw1-kh
This is a pure Python implementation of LZRW1/KH compression algorithm. Python 2 and Python 3 are supported. This implementation is based on the C implementation by Kurt Haenen and the Delphi implementation by Danny Heijl.
This implementation is slow and not suitable for large files.
Installation
pip3 install python-lzrw1-kh
pip3 install https://github.com/nmantani/python-lzrw1-kh/archive/refs/heads/master.zip
Usage
lzrw1_kh.compress() and lzrw1_kh.decompress() take bytes as an argument and return compressed / decompressed bytes.
>>> import lzrw1_kh
>>> lzrw1_kh.compress(b'AAAAAAAABBBBBBBBCCCCCCCC')
b'\x0c\x00@T\x00A\x00\x14B\x00\x14C\x00\x14'
>>> lzrw1_kh.decompress(b'\x0c\x00@T\x00A\x00\x14B\x00\x14C\x00\x14')
b'AAAAAAAABBBBBBBBCCCCCCCC'
>>>
>>> import hashlib
>>> import lzrw1_kh
>>> data = b"\x90"*1024
>>> hashlib.md5(data).hexdigest()
'e03067ea0b33933f67508ff1f8d0d4d0'
>>> compressed = lzrw1_kh.compress(data)
>>> len(compressed)
9
>>> decompressed = lzrw1_kh.decompress(compressed)
>>> len(decompressed)
1024
>>> hashlib.md5(decompressed).hexdigest()
'e03067ea0b33933f67508ff1f8d0d4d0'
>>>
Author
Nobutaka Mantani (Twitter: @nmantani)
License
The BSD 2-Clause License (http://opensource.org/licenses/bsd-license.php)
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
python-lzrw1-kh-0.1.tar.gz
(4.3 kB
view details)
File details
Details for the file python-lzrw1-kh-0.1.tar.gz
.
File metadata
- Download URL: python-lzrw1-kh-0.1.tar.gz
- Upload date:
- Size: 4.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.0 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a64b87c69bac7eb35eb5a9da398b17cb3ecb00dcb676d5206bd55d4bd1bfa84f |
|
MD5 | 3fbc1e0db7c9297bea58c584db585ed5 |
|
BLAKE2b-256 | 049efce30a838a7605690e2fddf3e16b94fb456d085df00c26e45a693c455e5d |