Library for data (de)compression using Nintendo's lzss11 algorithm
Project description
nlzss11
Library for data compression using Nintendo's variant of the lzss algorithm
Reference implementation: nlzss
Usage
nlzss11 can be installed with pip3 install nlzss11
.
nlzss11.get_uncompressed_size(data)
Returns the size in bytes of the file if uncompressed or None if the bytes are not a valid Nintendo LZSS 11 compressed file.
nlzss11.decompress(data)
Decompresses nlzss11-compressed data from a bytes-like object data
. Returns a bytes object containing the uncompressed data.
nlzss11.decompress_unsafe(data)
Decompresses nlzss11-compressed data from a bytes (not bytes-like) object data
. Returns a bytes object containing the uncompressed data.
Unlike nlzss11.decompress, this function assumes that the input data is well-formed. In exchange for slightly improved performance, no sanity checks are performed. Warning: Do not use on untrusted data.
nlzss11.compress(data, level=7)
Compresses a bytes-like object data
. Returns a bytes-like object containing the compressed data.
level
is the compression level (6-9). 6 is fastest and 9 is slowest. Higher compression levels result in better compression. 7 is a good compromise between compression ratio and performance.
Project information
This project is a fork from the amazing syaz0 Project, just modified to match the algorithm found in The Legend of Zelda: Skyward Sword.
Building from source
Building nlzss11 from source requires:
- CMake 3.10+
- A compiler that supports C++17
- Everything needed to build zlib-ng
- pybind11 2.4+ (including CMake config files)
- setuptools
When no binary build is available, pip will automatically build from source during the install process.
To build and install from source run pip3 install .
.
Building for manylinux
- Use the manylinux docker container in this directory:
docker run -v $PWD:/home/build/nlzss11 -ti quay.io/pypa/manylinux2010_x86_64 bash
- Run
bash build-on-manylinux.sh
- run
setup.py bdist_wheel
with every cpython version you want from/opt/python
Changelog
1,7
- recompress support for files > 0xFFFFFF (found in SSHD)
1.3
- decompress support for files > 0xFFFFFF (found in SSHD)
License
This software is licensed under the terms of the GNU General Public License, version 2 or later.
Project details
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 nlzss11-1.7-cp312-cp312-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9a6a28b6d9ae11615431bee258be06d96459f14030d376bf58ddca69963b474e |
|
MD5 | 9e998c0953b3c8b2a18a0ba2f1ba3cba |
|
BLAKE2b-256 | 547ae4daa6df45925aae88343e26328d5969bbb65c08aa6b2a789c709b56bdb3 |
Hashes for nlzss11-1.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3ae0c022d6f1629f10000d6b565cbd6748d858f2629267568fbb50a88f6ad545 |
|
MD5 | 137ef58c852a306c77e52c54313deedb |
|
BLAKE2b-256 | 7df5a3d3064aea6291807de6befa8dd3a16980036b1f168a98a93dcd2d0cb17e |
Hashes for nlzss11-1.7-cp312-cp312-macosx_14_0_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0d2a8ff260d61df6d7966cc237dcdfdcc69c49d6a02aa1dd0fee56acb6fa7d97 |
|
MD5 | 748bab18f80d346e690a97beafc3de0c |
|
BLAKE2b-256 | 436c9ea364f5d473f2f3c99c4d1c9b259eae7a822b2b6f642fc7609792bdcc05 |
Hashes for nlzss11-1.7-cp312-cp312-macosx_12_0_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2624aa118ada9d6a6596c101f1b1d20fa0a6f0ec87a78de9a70e31f91f7b1e7b |
|
MD5 | f702445be248a36395593288f5a7b090 |
|
BLAKE2b-256 | 4b920ffd243a687ec3324b8a6890e52099d930185b3991db42fe225c37f27a9b |
Hashes for nlzss11-1.7-cp312-cp312-macosx_11_0_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 709db42848688e82d5208b013db726f86d7a5d24c1e0f3ad5dc8574f3c1ed4ab |
|
MD5 | 16e893f0af5c4fb1b801da19d67fe110 |
|
BLAKE2b-256 | 08210d3d2bbce6a3a494616f1b603542bda4aaeb8c58ef7e8cf0d4ae38d982ed |
Hashes for nlzss11-1.7-cp312-cp312-macosx_10_14_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e0f7cbb63406bc3e95ee38a58dc918a03f6e3778aa9a7c337b56cf048d83e153 |
|
MD5 | cd2745bf46377529a76631a453f89071 |
|
BLAKE2b-256 | cb60cb9ce3e4fbfb4b1745f4cdecbef6348cf98ace9d415b4309067c4ecfad00 |
Hashes for nlzss11-1.7-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1174ee7f7f4ec4b07e62e2d549b98a7804f4ea4ab8452c6379a0d690e8f038f5 |
|
MD5 | 7b0d46efe71c9a613ddc3bf8ba0dec8c |
|
BLAKE2b-256 | 1f8a5d309382b3918ea2e0911da13d42e4c55d39a6afd0b977953e5150afaf23 |
Hashes for nlzss11-1.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a53416630e1cc82c68583a2853e950f40bd316f547f0488c5149f961c8c08d53 |
|
MD5 | ed8d4af574d26880f5c8de8c9fd8b2d7 |
|
BLAKE2b-256 | 04c221e520754609eabfc517172f96f41181cc35b9d2a6d6458fc2266b7a0c71 |
Hashes for nlzss11-1.7-cp311-cp311-macosx_14_0_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3a32afd623567ac1a23c4d498ef70e9f6efb6bd74ebe746ce40b97215c64b916 |
|
MD5 | fd96f1e942c8b01050f20cbca2ff7dae |
|
BLAKE2b-256 | 64274187a9238a7fde6704be89da99761d6783c9e742411a66e2eb27794d3c65 |
Hashes for nlzss11-1.7-cp311-cp311-macosx_12_0_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3eef978e2fa26b35fa5f125a297135a5b8e7a28a3db6ade61ebcb4c61a1fb85f |
|
MD5 | a46584087bf42d29924969b498201afb |
|
BLAKE2b-256 | 158ada910c9f599aa7e50458fe2559367f8fb3a940a889c8be93f79d8a19edb4 |
Hashes for nlzss11-1.7-cp311-cp311-macosx_11_0_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0c2d6f5c153243c695b93d22a0867adaf82d8211f0b2b7b87eb03a754512055e |
|
MD5 | ac5f59459c8c2acef63bdffbefab69e5 |
|
BLAKE2b-256 | 538175c9c379be82beba78a30f49cbd5da05d65b3a9dbba3763bbfa713cdae65 |
Hashes for nlzss11-1.7-cp311-cp311-macosx_10_14_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 97c391f7048391bf65f76ae0da3f1f76dee0e95a12523b0d56f6fa061b15b26c |
|
MD5 | 61bf21a77e89b1eb7314f1c44a395210 |
|
BLAKE2b-256 | 2720e4731a8e6b3d3eb2b8ba7718fad83c57a9f58c4bd00a82743a95907b01d1 |
Hashes for nlzss11-1.7-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 72e192612e68a81c51cae1d93f3dd97ecb81f1031aed60e67f5dc674e5c790a3 |
|
MD5 | ae0554a459453ec9ca612cbf1745d50c |
|
BLAKE2b-256 | a41d83be66671ee591aa301b0dc806cca2fb5ddc6883fa2ba28518f1faa7ffdb |
Hashes for nlzss11-1.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f9811a9b6331b304f936f951afce14bc7ff02d35960ff3fd8ca1b151b4297609 |
|
MD5 | 7e79bed9ab82cafddc7ede00b0828df5 |
|
BLAKE2b-256 | f9e3baf5cb63532ed886917d0bce23774c4a5ce09092e6398c4eaa748b802bc8 |
Hashes for nlzss11-1.7-cp310-cp310-macosx_14_0_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 325a35b89b23f8ebed862fee7ae9beb529d61a0b5a79859560276ebeefb177b1 |
|
MD5 | 085952b223dc0729577e0b692caea179 |
|
BLAKE2b-256 | 61eab94c209e3fd7e08899ddbfad93ac08daaa596ac8ab06b520f25611c760c1 |
Hashes for nlzss11-1.7-cp310-cp310-macosx_12_0_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9d0026fdd22558eb9cf13ee0c9ab5020239fe6bb29c93c2fa4f97624212187c6 |
|
MD5 | a8efb1be472be81b6e61904c486a60d3 |
|
BLAKE2b-256 | 020bc75e5ef460ff098f061b6227cc341c5cb2435aafa4d6a91fd388cb080104 |
Hashes for nlzss11-1.7-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3ac4afc38ff8bf122d6f6656428962b7962bfea56d6ecccd60b4b3a9243de992 |
|
MD5 | eddbc3ac62bb0af51327d0b03eff196d |
|
BLAKE2b-256 | 98183a5e546e03895b3b40e4bdf65ffd63cb5a9305e48212d878bbbca642b3ac |
Hashes for nlzss11-1.7-cp310-cp310-macosx_11_0_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cd9f1bab819d6ed02f39035bb1fe22e59e326532b01120538c6e00f9d5a64453 |
|
MD5 | 3f501dce81ad5b153fb62c212cfa1300 |
|
BLAKE2b-256 | 156c48115142ff8480374a0c7719cc15ff76534a4881684efb6a4ca0da247663 |
Hashes for nlzss11-1.7-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c6d85d53e3b2a65cecc8d98c8afab0afab0076e3dcebe04e106502c8559cfdd0 |
|
MD5 | a84cad4db31d5582a59c46d3d1293ba0 |
|
BLAKE2b-256 | ea1a9b5889d55adc1402fb54716364e2d5304df5c56690041730a2e49df135d0 |
Hashes for nlzss11-1.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 89d4dc85f0551d78eace1704894fbbb9da2916051a080de212e3746bd572a261 |
|
MD5 | 02e7afe1e0c47acc316c0b4d138d7412 |
|
BLAKE2b-256 | cdc87e1830cb01dd6130283e267cc82daf3251b98a353aeae799c5c9418ed17a |
Hashes for nlzss11-1.7-cp39-cp39-macosx_14_0_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e6e2c4c632824c1dcbf00ad91e5b6d2060d13cd35f171ce308d994704f0300bd |
|
MD5 | 6ef8083c71f19e132ad85c14c34c45c7 |
|
BLAKE2b-256 | f7edb6d65ff5ecb319e66228ce60326fdccb5703f3ace12ed4a636a3508f3f2d |
Hashes for nlzss11-1.7-cp39-cp39-macosx_12_0_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6de05c12e46ead148d720249d63ca90f05a9fb45e2a21acf6eb067909d710344 |
|
MD5 | e0a80fc9d5839de9596619e9e6e706ee |
|
BLAKE2b-256 | 4779c8d348cefc23908f9b60fd7d01730863ad09ccf866a4e538f8587ab1e531 |
Hashes for nlzss11-1.7-cp39-cp39-macosx_11_0_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 03de22ad305b71e20c3f4e96409cb83a6c4a35e7dee5bfccc6c5d9167d846e8e |
|
MD5 | 1fb79fc2084fb6ab381f6df6bb891fb6 |
|
BLAKE2b-256 | 2f6fb6a753fe42846b6c5542ba2d5a1d7c367b5f9278c56359415644f28b0456 |
Hashes for nlzss11-1.7-cp39-cp39-macosx_11_0_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 89529372a83c61bbac7ff9e32a04285784fcc6bb133a836541181a77b4482d9b |
|
MD5 | 4a0eed0ba29fc2d1e7cd5badcc7ecf2d |
|
BLAKE2b-256 | a681758b4ae5ad93f1ebd021fd75f30dd1bd5e19ea285a2cdd54f2fb63969720 |
Hashes for nlzss11-1.7-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f9851a52a369402b12e9fb16594a6351dc5b41bf50d2e5a943fdbb9ebfff9402 |
|
MD5 | 42c5e378c488230d54db9a7ef8dc229a |
|
BLAKE2b-256 | d552c2fa3ebda1d5a176113daf4b37d5f43cc7669a83e29be738e234038dcefb |
Hashes for nlzss11-1.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a3a01c2fb18c8f5d73f2e4452a1518f9455bab03414ebc6766226a829d406f8b |
|
MD5 | 0aa7380fe251827ecac2821af366fefe |
|
BLAKE2b-256 | c809cce2f84b7d0c930a9a42f55953648a32a87cf80ac31fafed4e26ec3312e3 |
Hashes for nlzss11-1.7-cp38-cp38-macosx_14_0_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f05b9b643f7e2a6b5e522182f05d0a39357b8a46f46df52d954ae528796c467a |
|
MD5 | 944b5fd8aab2d3b018d5da2060d55b0f |
|
BLAKE2b-256 | 102e57903563bd917d0747ddf95754d65d2106b5d549c2af604355f6fbde6c15 |
Hashes for nlzss11-1.7-cp38-cp38-macosx_12_0_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eb804f2b2b83b9c10a3ddf8e2f709ab2f13550dc29f870f9ec737a046adf6bea |
|
MD5 | 1fce99ab0809074b46416423ff76a848 |
|
BLAKE2b-256 | 37714b749bd7f070e93fc92577206d924b232b6a7a9c50c016859ddcea1a7f36 |
Hashes for nlzss11-1.7-cp38-cp38-macosx_11_0_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e29e38c983037cf4315cca11fe84059c1e9d482eaa87e33313104025aea50459 |
|
MD5 | 0f57c371bff00c73f23f22ae5c22d144 |
|
BLAKE2b-256 | cc2351e5e8aa3db5f77235954166ce751261d2ae9b79d9c9514874dcf38a6ade |
Hashes for nlzss11-1.7-cp38-cp38-macosx_11_0_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 632e8ff8f98b3018679afaa86954db5575e69a36071d0d36c29c7be38fbe2d21 |
|
MD5 | 63aaacedc2df75443763a95fc95f60aa |
|
BLAKE2b-256 | ad032732cb1ee2187bd1e551e8d5900ea88d28077b430bc5bcf3dbcf8561d15d |
Hashes for nlzss11-1.7-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9b93a11ed56d1c8b350575f54b21fe3f87c4f5ccc27202061c0f949ab0780203 |
|
MD5 | 020bd5e0ce96310bfe73c12676a5e640 |
|
BLAKE2b-256 | 302da2db85418d964416215f8879fff22e599cf9100641cbb2c023aefdb21028 |
Hashes for nlzss11-1.7-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c075695d28a0875c6df3abb7a37326a2c18d5711b4880aced378c57b4c0f825c |
|
MD5 | af91b73e487a1277ecd4dc5f6d5cc466 |
|
BLAKE2b-256 | fc21abdde75e3d1114477f87b77be91e2dedd9f3cd80efa4ae02a0c7424c829d |
Hashes for nlzss11-1.7-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 86e5531033a979065e29c51144bcf5535317a4a9b218e2fc15a68d3307c87c38 |
|
MD5 | a4b1e2b566312dc89031803cad9faca3 |
|
BLAKE2b-256 | 187165ea4f3dc38422382cd3882c3bcf2f006af7523d7a3c747b291e2db1e24a |
Hashes for nlzss11-1.7-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f0cc06dbfb2b963898e8af8f004965d3db92cad947e761144fff3fbc2deec4c7 |
|
MD5 | 77fd2d3421fbb1163286fb7168b1b49a |
|
BLAKE2b-256 | a354bcc221ef7b35359b463453a1ce7bd60cd4def4c765d2ed7ff13f394d52c3 |