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.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.6-cp312-cp312-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f4b47d67edf24e6ac6eed449786b26df951f7183cecd915dac3c567ab77dcc6f |
|
MD5 | 2a9201792d45e2d7c67fdf0c54962430 |
|
BLAKE2b-256 | 49c7f86d645ef265be2bc79dc93bff0a736b85841c707946547f8de77104aea1 |
Hashes for nlzss11-1.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e05637ebd1e335122b07a18cbb1ce29c6528420a9e799403a8f2a405a08ba970 |
|
MD5 | 669dfb97fd7c61b6c863237a98faa838 |
|
BLAKE2b-256 | 053a22b04ff9d2ad576a97f7f0eff885c0dc7d05672d41dea796cd5df5f22408 |
Hashes for nlzss11-1.6-cp312-cp312-macosx_10_14_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9eb5d6d8f1e53a6eb7e4b7543ef469e8b6f9cf9636d2b835884deac1a4a8ec19 |
|
MD5 | 8f290678101ee0b33093fcb0474f1426 |
|
BLAKE2b-256 | ea1623145ad66f2fc6a24be8324e4f1447dfbb6608470b622c8bcab73afa9b57 |
Hashes for nlzss11-1.6-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b13f36da7120f0adefde95c7bcfab86aff95ca13b36cb5f3aefe051ebdfb3ff4 |
|
MD5 | 218a50668c8256b5bc0d89bbc2b5937f |
|
BLAKE2b-256 | 4c882ac3c2a75d8635dd58048b34668cd218853dd45b520c371e6e439e5f5b99 |
Hashes for nlzss11-1.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8a2b80dd9421fee61623ab0d90e08523143d072992d0a9377652bdf0e66d5587 |
|
MD5 | feb3f2f4c220185cec9187a5ec39d615 |
|
BLAKE2b-256 | 2ae034e95139197faba8a2e11a1ddf05fb9061006dc818dedba49cd3298a2504 |
Hashes for nlzss11-1.6-cp311-cp311-macosx_10_14_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5adf973da29fbacfe90f9b58f601baed6ebd06a3a261cd2e1199fdb0711c2aa6 |
|
MD5 | be317e4941926cbe4dc17f878caec249 |
|
BLAKE2b-256 | dd6e0261c7efcf08d37254c55187c56a8d879a7493824cba480eb5e772e2c6d6 |
Hashes for nlzss11-1.6-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b5a3caa500b134ffe8c213c74545502ad2c59e6ddf4f4a5472a895e37d0496e0 |
|
MD5 | a86167af5c2db4da3aa103ff0bd4e9c3 |
|
BLAKE2b-256 | 3722d32634acaa42ed180746113c1004d038bc5e0bb30ae1e282a489af1b1316 |
Hashes for nlzss11-1.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b97c3ebdbcac0630976e72c138e3bed212317a536be45a246f575af3cc39a555 |
|
MD5 | 31aad4b8474504b761274f4c952ca0dd |
|
BLAKE2b-256 | 7ea65939548004fd7149421778792c54cd876db832ce4436615e261fb3d1ec97 |
Hashes for nlzss11-1.6-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 065bfc72bbc87eb4840eb090cc523ea03bde199b3847619d03fe3cdf2bf998f1 |
|
MD5 | a61bab96d8a32a7879003927cdf29d89 |
|
BLAKE2b-256 | 000bd54a0a26a2dc7a39791f29f3a81428175a3c2d1991efb92c1f50700e12d8 |
Hashes for nlzss11-1.6-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a640582811395e1d20ed24c06a4497b3cfd3f370fe0ea094348f29e9c8ffc59d |
|
MD5 | bfca71015ea3e19a7399f7902f6ce9d6 |
|
BLAKE2b-256 | 8b6ca2f176dee481b0938ee27d58843bff3029b8f8492a068cc24890293fb3b4 |
Hashes for nlzss11-1.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 495d2d8f106e82ffc894225f6ca4874807afa031d894f17fee4bbeb40d1ecc8e |
|
MD5 | 8606366fe3570e7816c1ce37fcdc4e48 |
|
BLAKE2b-256 | f9bec7d0ea8578353bebb0a30ec57e7cd8f4ef861be5250dfd063bb33389a39d |
Hashes for nlzss11-1.6-cp39-cp39-macosx_11_0_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 24c8198816001ee813f752e90d2011eff5d03fc376e95c1774e77a2e6acf28c6 |
|
MD5 | ab5c88c4dff90a03e78d0af3f7ed3868 |
|
BLAKE2b-256 | 5b562228e6958147f0c9c4e8a8813aacdccfe13c3e8c3cee2892051e2caae9c2 |
Hashes for nlzss11-1.6-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7044157886ac07ccd2819eef610ebcd10e0052191f4358d8624a980dfad80e99 |
|
MD5 | fb96144097daae980de53215758c824d |
|
BLAKE2b-256 | 6d8cea41dad07bae830c3fd6be98c95314e911e7c473a5d058e628788b46d09d |
Hashes for nlzss11-1.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0263127376f80f35a759f9a273f80746976b7f719be48f0411129650685e3ecc |
|
MD5 | 1ee139489ebe0137aa8b294be8aaef07 |
|
BLAKE2b-256 | d246cfec20829cbf1c87dcf16915355ef177f048c65e4edbf386e179e337875f |
Hashes for nlzss11-1.6-cp38-cp38-macosx_11_0_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f6f02d18772fd68b3f68930c381e187272d4bb64c934a51660c16fc01c681d70 |
|
MD5 | 3e58b28d55f8bda1a8e88197c27cba41 |
|
BLAKE2b-256 | d695c7ad3f85529ee013cf53c90e57a28f6a808a32e0d5e8734c20ae0f2010db |
Hashes for nlzss11-1.6-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a6c824e3221bf39b8eb85025db68a49fe14396e823a568a5f6bdced399bd1619 |
|
MD5 | 20ee45e0cc256e4c9a8733b418828651 |
|
BLAKE2b-256 | a60cdee0f9a8074fd1480dde701b0cb4d2d516ac7133997c4d3a9028b97a9ee7 |
Hashes for nlzss11-1.6-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4ebfc1514a18ae877c6d8c12bad7bf2ce141ec515bc0195489d0601644af1067 |
|
MD5 | c8e9665996325ab48e1cf612ad895fcb |
|
BLAKE2b-256 | 1b7905f31173ebc25056b648d9b964130943e57307f68e929a091f9e6e917245 |
Hashes for nlzss11-1.6-cp37-cp37m-macosx_11_0_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e65c68b424af8b74292a351172a57852c2374ebe02922a641016fd83e20c5960 |
|
MD5 | 8b6ba240823109c5f74222345f8676aa |
|
BLAKE2b-256 | 9d734428940b4fcebb0d64348f22ee76faba7de238be681a877fdd413f091fd5 |
Hashes for nlzss11-1.6-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 15a12d86e6951a1b7a938b0bdc0739e2805a9bd31c52aabd18bd0c40daf91407 |
|
MD5 | 102d2db7aa4b0ef93bc1c64724135188 |
|
BLAKE2b-256 | 16820593c8445a238b60b6671d28bceaa95f35b1ef20b6c45628cfe0ce23b48b |
Hashes for nlzss11-1.6-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 002f369f8f58f426963ac3a243d53c296317a20becea0d1ac41f7b173ab03894 |
|
MD5 | 8a80b4259b2030aea9527d8176ab02a8 |
|
BLAKE2b-256 | fce0cd3df5c6d75c71c8d610fe18b98037c5de3f8bfc240410db2b1e8442f842 |
Hashes for nlzss11-1.6-cp36-cp36m-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a8146dcd4d57d638d64cc35540dce77d511c2d97bff06039d5f06a638fecfc53 |
|
MD5 | db34bb4ce025e7b33c372de16a628882 |
|
BLAKE2b-256 | 14416b583a84e98b42e8edcfa0bce2a03dcd3e733aa9a7ffabcd46e15fa5945b |