Python wrapper for libdeflate.
Project Links
Meta
Author: Dan Watson
Requires Python: >=3.9
Classifiers
Development Status
- 4 - Beta
Intended Audience
- Developers
License
- OSI Approved :: MIT License
Operating System
- MacOS :: MacOS X
- Microsoft :: Windows
- POSIX :: Linux
Programming Language
- Python
- Python :: 3
- Python :: 3.9
- Python :: 3.10
- Python :: 3.11
- Python :: 3.12
- Python :: 3.13
Topic
- Software Development :: Libraries
- System :: Archiving :: Compression
deflate API
This is a very thin Python wrapper Eric Biggers' excellent libdeflate.
Currently, it handles:
Compression and decompression of gzip data, with a very basic API
import deflate
level = 6 # The default; may be 1-12 for libdeflate.
compressed = deflate.gzip_compress(b"hello world!" * 1000, level)
original = deflate.gzip_decompress(compressed)
Compression and decompression of raw DEFLATE or zlib data
The original size of the decompressed data needs to be kept through additional logic.
import deflate
level = 6 # The default; may be 1-12 for libdeflate.
data = b"hello world!" * 1000
# DEFLATE
compressed = deflate.deflate_compress(data, level)
original = deflate.deflate_decompress(compressed, len(data))
# zlib
compressed = deflate.zlib_compress(data, level)
original = deflate.zlib_decompress(compressed, len(data))
CRC32 computation
import deflate
crc32 = deflate.crc32(b"hello world! ") # initial
crc32 = deflate.crc32(b"hello universe!", crc32) # continued
Adler-32 computation
import deflate
adler32 = deflate.adler32(b"hello world! ") # initial
adler32 = deflate.adler32(b"hello universe!", adler32) # continued
Installation
pip install deflate
By default, deflate will compile and statically link the bundled libdeflate when you
build from source (or use the pre-compiled wheels). To link to a system-installed libdeflate, set the
LIBDEFLATE_PREFIX environment variable and build from source:
LIBDEFLATE_PREFIX=/opt/homebrew/Cellar/libdeflate/1.20 pip install deflate --no-binary=deflate
Be warned: you can't use this wheel on a system without the referenced libdeflate.
Testing
pip install -r requirements-dev.lock
python -m pytest
0.8.1
Jul 18, 2025
0.8.0
Mar 30, 2025
0.7.0
May 09, 2024
0.6.1
May 07, 2024
0.6.0
Apr 21, 2024
0.5.0
Dec 20, 2023
0.4.0
Jun 29, 2023
0.3.0
Dec 14, 2020
0.2.0
Nov 19, 2020
0.1.0
Jun 17, 2020
Wheel compatibility matrix
Files in release
deflate-0.8.1-cp310-cp310-macosx_10_9_x86_64.whl (53.9KiB)
deflate-0.8.1-cp310-cp310-macosx_11_0_arm64.whl (39.6KiB)
deflate-0.8.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (49.1KiB)
deflate-0.8.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (50.6KiB)
deflate-0.8.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (53.4KiB)
deflate-0.8.1-cp310-cp310-musllinux_1_2_aarch64.whl (50.1KiB)
deflate-0.8.1-cp310-cp310-musllinux_1_2_i686.whl (55.9KiB)
deflate-0.8.1-cp310-cp310-musllinux_1_2_x86_64.whl (53.9KiB)
deflate-0.8.1-cp310-cp310-win32.whl (43.0KiB)
deflate-0.8.1-cp310-cp310-win_amd64.whl (48.9KiB)
deflate-0.8.1-cp311-abi3-macosx_10_9_x86_64.whl (53.9KiB)
deflate-0.8.1-cp311-abi3-macosx_11_0_arm64.whl (39.6KiB)
deflate-0.8.1-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (49.0KiB)
deflate-0.8.1-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (50.5KiB)
deflate-0.8.1-cp311-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (53.4KiB)
deflate-0.8.1-cp311-abi3-musllinux_1_2_aarch64.whl (50.1KiB)
deflate-0.8.1-cp311-abi3-musllinux_1_2_i686.whl (55.8KiB)
deflate-0.8.1-cp311-abi3-musllinux_1_2_x86_64.whl (53.8KiB)
deflate-0.8.1-cp311-abi3-win32.whl (43.0KiB)
deflate-0.8.1-cp311-abi3-win_amd64.whl (48.8KiB)
deflate-0.8.1-cp39-cp39-macosx_10_9_x86_64.whl (53.9KiB)
deflate-0.8.1-cp39-cp39-macosx_11_0_arm64.whl (39.6KiB)
deflate-0.8.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (49.1KiB)
deflate-0.8.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (50.6KiB)
deflate-0.8.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (53.4KiB)
deflate-0.8.1-cp39-cp39-musllinux_1_2_aarch64.whl (50.1KiB)
deflate-0.8.1-cp39-cp39-musllinux_1_2_i686.whl (55.9KiB)
deflate-0.8.1-cp39-cp39-musllinux_1_2_x86_64.whl (53.9KiB)
deflate-0.8.1-cp39-cp39-win32.whl (43.0KiB)
deflate-0.8.1-cp39-cp39-win_amd64.whl (48.9KiB)
deflate-0.8.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl (53.6KiB)
deflate-0.8.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl (39.6KiB)
deflate-0.8.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (49.1KiB)
deflate-0.8.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (50.6KiB)
deflate-0.8.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (53.5KiB)
deflate-0.8.1-pp310-pypy310_pp73-win_amd64.whl (49.0KiB)
deflate-0.8.1-pp311-pypy311_pp73-macosx_10_15_x86_64.whl (53.6KiB)
deflate-0.8.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl (39.6KiB)
deflate-0.8.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (49.1KiB)
deflate-0.8.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (50.6KiB)
deflate-0.8.1-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (53.5KiB)
deflate-0.8.1-pp311-pypy311_pp73-win_amd64.whl (49.0KiB)
deflate-0.8.1-pp39-pypy39_pp73-macosx_10_15_x86_64.whl (53.6KiB)
deflate-0.8.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl (39.6KiB)
deflate-0.8.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (49.1KiB)
deflate-0.8.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (50.6KiB)
deflate-0.8.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (53.5KiB)
deflate-0.8.1-pp39-pypy39_pp73-win_amd64.whl (49.0KiB)
deflate-0.8.1.tar.gz (212.5KiB)