skillfed

isal

Faster zlib and gzip compatible compression and decompression by providing python bindings for the ISA-L ibrary.

isal v1.8.0 2.8M downloads/30d#2,891 on PyPI58
Permissive license PSF-2.0 Active released

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 isal

uv

uv add isal

poetry

poetry add isal

Installing 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

Development Status :: 5 - Production/StableOperating System :: MacOSOperating System :: Microsoft :: WindowsOperating System :: POSIX :: LinuxProgramming Language :: CProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPyTopic :: System :: Archiving :: Compression

Tags

fast gzip compression pythonzlib accelerationisa-l python bindingshigh-performance compressionigzip modulethreaded compression streamingdeflate acceleration
compressionperformance-optimizationassembly-accelerated

More Compression packages