isal
Faster zlib and gzip compatible compression and decompression by providing python bindings for the ISA-L ibrary.
What it is and what it does
python-isal wraps Intel's ISA-L (Intelligent Storage Acceleration Library) to provide faster compression and decompression than Python's standard zlib and gzip modules. It offers four main modules: isal_zlib (zlib replacement), igzip (gzip replacement), igzip_threaded (for multi-threaded streaming I/O that escapes the GIL), and igzip_lib (direct access to ISA-L's compression API). The library implements key algorithms in assembly language for speed while maintaining near-complete API compatibility with the standard library.
The package is designed as a drop-in replacement, so existing code using zlib or gzip can often switch to isal_zlib or igzip with minimal changes. However, there are intentional differences: compression levels are 0–3 instead of 1–9, flush modes are limited, and memory level mapping differs. These trade-offs reflect ISA-L's design and are documented to help developers understand when and how to adopt the library.
Use it for:
- Replace zlib in data pipeline code to accelerate compression without rewriting application logic
- Stream large compressed files using igzip_threaded to parallelize I/O and bypass Python's GIL
- Build bioinformatics or data-heavy tools that compress/decompress frequently and need lower latency
- Implement gzip-compatible command-line compression tools via the igzip module or CLI
- Reduce CPU cost in production services that compress logs, backups, or API responses at scale
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides Python bindings for Intel's ISA-L library to accelerate zlib and gzip compression and decompression with drop-in replacement modules.
Yes, if you compress or decompress data frequently and can tolerate the compression-level API differences. The library is production-stable (active maintenance, no known vulnerabilities, permissive license), offers genuine performance gains via assembly-level optimization, and provides both synchronous and threaded I/O options. Install friction is moderate but manageable with pre-built wheels for common platforms. Not necessary if your compression workload is negligible or if you require exact zlib/gzip API compatibility.
Install
isal on PyPI
pip
pip install isaluv
uv add isalpoetry
poetry add isalInstalling isal
Before you install
Medium install friction: compiled wheels available for Python 3.10–3.13 on x86_64, aarch64, and ARM macOS, plus Windows; requires Python 3.9+. Repository is active with recent commits and no known vulnerabilities.
License in practice
Licensed under PSF-2.0 (permissive), allowing use in proprietary and open-source projects without significant restrictions.
Quickstart
pip install isal
from isal import isal_zlib, igzip
# Use as drop-in replacement for zlib
compressed = isal_zlib.compress(b'data')
decompressed = isal_zlib.decompress(compressed)
# Or use igzip as gzip replacement
with igzip.open('file.gz', 'wb') as f:
f.write(b'data')
Compression levels range 0–3 (not 1–9 like zlib); level 0 means lowest compression, not no compression. Requires ISA-L build dependencies for development.
Verify before relying
- Whether performance gains justify medium install friction for your specific workload
- Compatibility of memory level mapping (1–9 range) with existing zlib code in production
Package facts
| License | PSF-2.0 (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 338 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 2,787,014/month — #2,891 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: isal-1.8.0-cp310-cp310-macosx_10_9_x86_64.whl; isal-1.8.0-cp310-cp310-macosx_11_0_arm64.whl; isal-1.8.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; isal-1.8.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; isal-1.8.0-cp310-cp310-musllinux_1_2_aarch64.whl; isal-1.8.0-cp310-cp310-musllinux_1_2_x86_64.whl; isal-1.8.0-cp310-cp310-win_amd64.whl; isal-1.8.0-cp311-cp311-macosx_10_9_x86_64.whl; isal-1.8.0-cp311-cp311-macosx_11_0_arm64.whl; isal-1.8.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; isal-1.8.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; isal-1.8.0-cp311-cp311-musllinux_1_2_aarch64.whl; isal-1.8.0-cp311-cp311-musllinux_1_2_x86_64.whl; isal-1.8.0-cp311-cp311-win_amd64.whl; isal-1.8.0-cp312-cp312-macosx_10_13_x86_64.whl; isal-1.8.0-cp312-cp312-macosx_11_0_arm64.whl; isal-1.8.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; isal-1.8.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; isal-1.8.0-cp312-cp312-musllinux_1_2_aarch64.whl; isal-1.8.0-cp312-cp312-musllinux_1_2_x86_64.whl
Keywords: isal, isa-l, compression, deflate, gzip, igzip
Tags
More Compression packages
Provides Python bindings to the Brotli…
permissive · top 1,000 on PyPI
backports.zstdProvides Zstandard compression support for…
permissive · top 1,000 on PyPI
zopfliZopfli is a Python binding for Google's Zopfli…
permissive · top 1,000 on PyPI
python-snappyPython binding for Google's Snappy compression…
permissive · top 5,000 on PyPI
pyzipperpyzipper replaces Python's standard zipfile…
permissive · top 5,000 on PyPI
pyzstdProvides Python bindings to the Zstandard…
permissive · top 5,000 on PyPI
zlib-ngProvides faster zlib and gzip compression and…
permissive · top 5,000 on PyPI
aiohttp-fast-zlibReplaces aiohttp's default zlib compression…
permissive · top 5,000 on PyPI
aiohttp-zlib-ngReplaces aiohttp's default zlib compression…
permissive · top 15,000 on PyPI
cmeel-zlibProvides zlib 1.3.2 as a pre-built wheel for…
permissive · top 15,000 on PyPI
lz4Python bindings for the LZ4 compression…
permissive · top 1,000 on PyPI
deflateThin Python wrapper around libdeflate for fast…
permissive · top 15,000 on PyPI
apple-compressPython bindings for Apple's libcompression…
unclear · top 15,000 on PyPI
cramjamProvides fast Python bindings to multiple…
permissive · top 1,000 on PyPI
zlib-stateProvides low-level access to zlib decompression…
permissive · top 15,000 on PyPI