{"id":32116634,"url":"https://github.com/pycompression/python-isal","last_synced_at":"2026-02-20T00:30:54.483Z","repository":{"id":42130159,"uuid":"289876129","full_name":"pycompression/python-isal","owner":"pycompression","description":"Faster zlib and gzip compatible compression and decompression by providing python bindings for the isa-l library.","archived":false,"fork":false,"pushed_at":"2025-09-10T09:07:35.000Z","size":5307,"stargazers_count":53,"open_issues_count":9,"forks_count":9,"subscribers_count":3,"default_branch":"develop","last_synced_at":"2025-10-20T16:05:47.977Z","etag":null,"topics":["deflate","gzip","isa-l","isal","performance","zlib"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pycompression.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.rst","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-08-24T08:51:15.000Z","updated_at":"2025-10-12T20:14:12.000Z","dependencies_parsed_at":"2023-09-26T19:10:42.543Z","dependency_job_id":"9eb91486-7350-42e0-a219-9daabbcd57d1","html_url":"https://github.com/pycompression/python-isal","commit_stats":null,"previous_names":[],"tags_count":34,"template":false,"template_full_name":null,"purl":"pkg:github/pycompression/python-isal","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pycompression%2Fpython-isal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pycompression%2Fpython-isal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pycompression%2Fpython-isal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pycompression%2Fpython-isal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pycompression","download_url":"https://codeload.github.com/pycompression/python-isal/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pycompression%2Fpython-isal/sbom","scorecard":{"id":751200,"data":{"date":"2025-08-11","repo":{"name":"github.com/pycompression/python-isal","commit":"52dba9210f544547c97bced28b31a8e30fcfd2b4"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.1,"checks":[{"name":"Maintained","score":10,"reason":"13 commit(s) and 5 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":3,"reason":"Found 4/11 approved changesets -- score normalized to 3","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:36: update your workflow using https://app.stepsecurity.io/secureworkflow/pycompression/python-isal/ci.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:40: update your workflow using https://app.stepsecurity.io/secureworkflow/pycompression/python-isal/ci.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:73: update your workflow using https://app.stepsecurity.io/secureworkflow/pycompression/python-isal/ci.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/pycompression/python-isal/ci.yml/develop?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:91: update your workflow using https://app.stepsecurity.io/secureworkflow/pycompression/python-isal/ci.yml/develop?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:94: update your workflow using https://app.stepsecurity.io/secureworkflow/pycompression/python-isal/ci.yml/develop?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:99: update your workflow using https://app.stepsecurity.io/secureworkflow/pycompression/python-isal/ci.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:109: update your workflow using https://app.stepsecurity.io/secureworkflow/pycompression/python-isal/ci.yml/develop?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:112: update your workflow using https://app.stepsecurity.io/secureworkflow/pycompression/python-isal/ci.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:143: update your workflow using https://app.stepsecurity.io/secureworkflow/pycompression/python-isal/ci.yml/develop?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:147: update your workflow using https://app.stepsecurity.io/secureworkflow/pycompression/python-isal/ci.yml/develop?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:153: update your workflow using https://app.stepsecurity.io/secureworkflow/pycompression/python-isal/ci.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:192: update your workflow using https://app.stepsecurity.io/secureworkflow/pycompression/python-isal/ci.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:196: update your workflow using https://app.stepsecurity.io/secureworkflow/pycompression/python-isal/ci.yml/develop?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:204: update your workflow using https://app.stepsecurity.io/secureworkflow/pycompression/python-isal/ci.yml/develop?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:207: update your workflow using https://app.stepsecurity.io/secureworkflow/pycompression/python-isal/ci.yml/develop?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:211: update your workflow using https://app.stepsecurity.io/secureworkflow/pycompression/python-isal/ci.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:258: update your workflow using https://app.stepsecurity.io/secureworkflow/pycompression/python-isal/ci.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/pycompression/python-isal/ci.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/pycompression/python-isal/ci.yml/develop?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/ci.yml:82","Warn: pipCommand not pinned by hash: .github/workflows/ci.yml:200","Warn: pipCommand not pinned by hash: .github/workflows/ci.yml:256","Warn: pipCommand not pinned by hash: .github/workflows/ci.yml:25","Warn: pipCommand not pinned by hash: .github/workflows/ci.yml:47","Info:   0 out of  11 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   9 third-party GitHubAction dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 27 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-22T20:26:35.898Z","repository_id":42130159,"created_at":"2025-08-22T20:26:35.899Z","updated_at":"2025-08-22T20:26:35.899Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29637408,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-19T22:32:43.237Z","status":"ssl_error","status_checked_at":"2026-02-19T22:32:38.330Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["deflate","gzip","isa-l","isal","performance","zlib"],"created_at":"2025-10-20T16:03:58.105Z","updated_at":"2026-02-20T00:30:54.478Z","avatar_url":"https://github.com/pycompression.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":".. image:: https://img.shields.io/pypi/v/isal.svg\n  :target: https://pypi.org/project/isal/\n  :alt:\n\n.. image:: https://img.shields.io/conda/v/conda-forge/python-isal.svg\n  :target: https://github.com/conda-forge/python-isal-feedstock\n  :alt:\n\n.. image:: https://img.shields.io/pypi/pyversions/isal.svg\n  :target: https://pypi.org/project/isal/\n  :alt:\n\n.. image:: https://img.shields.io/pypi/l/isal.svg\n  :target: https://github.com/pycompression/python-isal/blob/main/LICENSE\n  :alt:\n\n.. image:: https://img.shields.io/conda/pn/conda-forge/python-isal.svg\n  :target: https://github.com/conda-forge/python-isal-feedstock\n  :alt:\n\n.. image:: https://github.com/pycompression/python-isal//actions/workflows/ci.yml/badge.svg\n  :target: https://github.com/pycompression/python-isal/actions\n  :alt:\n\n.. image:: https://codecov.io/gh/pycompression/python-isal/branch/develop/graph/badge.svg\n  :target: https://codecov.io/gh/pycompression/python-isal\n  :alt:\n\n.. image:: https://readthedocs.org/projects/python-isal/badge\n   :target: https://python-isal.readthedocs.io\n   :alt:\n\n\npython-isal\n===========\n\n.. introduction start\n\nFaster zlib and gzip compatible compression and decompression\nby providing Python bindings for the ISA-L library.\n\nThis package provides Python bindings for the `ISA-L\n\u003chttps://github.com/intel/isa-l\u003e`_ library. The Intel(R) Intelligent Storage\nAcceleration Library (ISA-L) implements several key algorithms in `assembly\nlanguage \u003chttps://en.wikipedia.org/wiki/Assembly_language\u003e`_. This includes\na variety of functions to provide zlib/gzip-compatible compression.\n\n``python-isal`` provides the bindings by offering four modules:\n\n+ ``isal_zlib``: A drop-in replacement for the zlib module that uses ISA-L to\n  accelerate its performance.\n+ ``igzip``: A drop-in replacement for the gzip module that uses ``isal_zlib``\n  instead of ``zlib`` to perform its compression and checksum tasks, which\n  improves performance.\n+ ``igzip_threaded`` offers an ``open`` function which returns buffered read\n  or write streams that can be used to read and write large files while\n  escaping the GIL using one or multiple threads. This functionality only\n  works for streaming, seeking is not supported.\n+ ``igzip_lib``: Provides compression functions which have full access to the\n  API of ISA-L's compression functions.\n\n``isal_zlib`` and ``igzip`` are almost fully compatible with ``zlib`` and\n``gzip`` from the Python standard library. There are some minor differences\nsee: differences-with-zlib-and-gzip-modules_.\n\n.. introduction end\n\nQuickstart\n----------\n\n.. quickstart start\n\nThe python-isal modules can be imported as follows\n\n.. code-block:: python\n\n    from isal import isal_zlib\n    from isal import igzip\n    from isal import igzip_lib\n\n``isal_zlib`` and ``igzip`` are meant to be used as drop in replacements so\ntheir api and functions are the same as the stdlib's modules. Except where\nISA-L does not support the same calls as zlib (See differences below).\n\nA full API documentation can be found on `our readthedocs page\n\u003chttps://python-isal.readthedocs.io\u003e`_.\n\n``python -m isal.igzip`` implements a simple gzip-like command line\napplication (just like ``python -m gzip``). Full usage documentation can be\nfound on `our readthedocs page \u003chttps://python-isal.readthedocs.io\u003e`_.\n\n\n.. quickstart end\n\nInstallation\n------------\n- with pip: ``pip install isal``\n- with conda: ``conda install python-isal``\n\nInstallation is supported on Linux, Windows and MacOS. For more advanced\ninstallation options check the `documentation\n\u003chttps://python-isal.readthedocs.io/en/stable/index.html#installation\u003e`_.\n\npython-isal as a dependency in your project\n-------------------------------------------\n\n.. dependency start\n\nPython-isal supports a limited amount of platforms for which wheels have been\nmade available. To prevent your users from running into issues when installing\nyour project please list a python-isal dependency as follows.\n\n``setup.cfg``::\n\n    install_requires =\n        isal; platform.machine == \"x86_64\" or platform.machine == \"AMD64\" or platform.machine == \"aarch64\"\n\n``setup.py``::\n\n    extras_require={\n        \":platform.machine == 'x86_64' or platform.machine == 'AMD64' or platform.machine == 'aarch64'\": ['isal']\n    },\n\n.. dependency end\n\n.. _differences-with-zlib-and-gzip-modules:\n\nDifferences with zlib and gzip modules\n--------------------------------------\n\n.. differences start\n\n+ Compression level 0 in ``zlib`` and ``gzip`` means **no compression**, while\n  in ``isal_zlib`` and ``igzip`` this is the **lowest compression level**.\n  This is a design choice that was inherited from the ISA-L library.\n+ Compression levels range from 0 to 3, not 1 to 9. ``isal_zlib.Z_DEFAULT_COMPRESSION``\n  has been aliased to ``isal_zlib.ISAL_DEFAULT_COMPRESSION`` (2).\n+ ``isal_zlib`` only supports ``NO_FLUSH``, ``SYNC_FLUSH``, ``FULL_FLUSH`` and\n  ``FINISH_FLUSH``. Other flush modes are not supported and will raise errors.\n+ ``zlib.Z_DEFAULT_STRATEGY``, ``zlib.Z_RLE`` etc. are exposed as\n  ``isal_zlib.Z_DEFAULT_STRATEGY``, ``isal_zlib.Z_RLE`` etc. for compatibility\n  reasons. However, ``isal_zlib`` only supports a default strategy and will\n  give warnings when other strategies are used.\n+ ``zlib`` supports different memory levels from 1 to 9 (with 8 default).\n  ``isal_zlib`` supports memory levels smallest, small, medium, large and\n  largest. These have been mapped to levels 1, 2-3, 4-6, 7-8 and 9. So\n  ``isal_zlib`` can be used with zlib compatible memory levels.\n+ ``igzip.open`` returns a class ``IGzipFile`` instead of ``GzipFile``. Since\n  the compression levels are not compatible, a difference in naming was chosen\n  to reflect this. ``igzip.GzipFile`` does exist as an alias of\n  ``igzip.IGzipFile`` for compatibility reasons.\n+ ``igzip._GzipReader`` has been rewritten in C. Since this is a private member\n  it should not affect compatibility, but it may cause some issues for\n  instances where this code is used directly. If such issues should occur,\n  please report them so the compatibility issues can be fixed.\n\n.. differences end\n\nContributing\n------------\n.. contributing start\n\nPlease make a PR or issue if you feel anything can be improved. Bug reports\nare also very welcome. Please report them on the `github issue tracker\n\u003chttps://github.com/rhpvorderman/python-isal/issues\u003e`_.\n\n.. contributing end\n\nDevelopment\n-----------\n.. development start\n\nThe repository needs to be cloned recursively to make sure the\n`ISA-L \u003chttps://github.com/intel/isa-l\u003e`_ repository is checked out:\n``git clone --recursive https://github.com/pycompression/python-isal.git``. If\nthe repository is already checked out you can use ``git submodule update --init``.\n\nPatches should be made on a feature branch. To run the testing install ``tox``\nwith ``pip install tox`` and run the commands ``tox -e lint`` and\n``tox``. That will run most of the testing that is also performed by the CI.\nFor changes to the documentation run ``tox -e docs``. For changes to the C\ncode please also run ``tox -e asan`` to check for memory leaks. This requires\nlibasan to be installed.\n\nBuilding requires the \n`ISA-L build requirements \u003chttps://github.com/intel/isa-l?tab=readme-ov-file#building-isa-l\u003e`_ \nas well.\n\n.. development end\n\nAcknowledgements\n----------------\n\n.. acknowledgements start\n\nThis project builds upon the software and experience of many.  Many thanks to:\n\n+ The `ISA-L contributors\n  \u003chttps://github.com/intel/isa-l/graphs/contributors\u003e`_ for making ISA-L.\n  Special thanks to @gbtucker for always being especially helpful and\n  responsive.\n+ The `Cython contributors\n  \u003chttps://github.com/cython/cython/graphs/contributors\u003e`_ for making it easy\n  to create an extension and helping a novice get start with pointer addresses.\n+ The `CPython contributors\n  \u003chttps://github.com/python/cpython/graphs/contributors\u003e`_.\n  Python-isal mimicks ``zlibmodule.c`` and ``gzip.py`` from the standard\n  library to make it easier for python users to adopt it.\n+ `@marcelm \u003chttps://github.com/marcelm\u003e`_ for taking a chance on this project\n  and make it a dependency for his `xopen\n  \u003chttps://github.com/pycompression/xopen\u003e`_ and by extension `cutadapt\n  \u003chttps://github.com/marcelm/cutadapt\u003e`_ projects. This gave python-isal its\n  first users who used python-isal in production.\n+ Mark Adler (@madler) for the excellent comments in his pigz code which made\n  it very easy to replicate the behaviour for writing gzip with multiple\n  threads using the ``threading`` and ``isal_zlib`` modules. Another thanks\n  for his permissive license, which allowed the crc32_combine code to be\n  included in the project. (ISA-L does not provide a crc32_combine function,\n  unlike zlib.) And yet another thanks to Mark Adler and also for\n  Jean-loup Gailly for creating the gzip format which is very heavily used\n  in bioinformatics. Without that, I would have never written this library\n  from which I have learned so much.\n+ The `github actions team \u003chttps://github.com/orgs/actions/people\u003e`_ for\n  creating the actions CI service that enables building and testing on all\n  three major operating systems.\n+ `@animalize \u003chttps://github.com/animalize\u003e`_ for explaining how to test and\n  build python-isal for ARM 64-bit platforms.\n+ And last but not least: everyone who submitted a bug report or a feature\n  request. These make the project better!\n\nPython-isal would not have been possible without you!\n\n.. acknowledgements end\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpycompression%2Fpython-isal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpycompression%2Fpython-isal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpycompression%2Fpython-isal/lists"}