deflate 0.8.1


pip install deflate

  Latest version

Released: Jul 18, 2025

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

Wheel compatibility matrix

Platform CPython 3.9 CPython 3.10 CPython >=3.11 (abi3) PyPy 3.9 (pp73) PyPy 3.10 (pp73) PyPy 3.11 (pp73)
macosx_10_15_x86_64
macosx_10_9_x86_64
macosx_11_0_arm64
manylinux1_i686
manylinux2014_aarch64
manylinux2014_i686
manylinux2014_x86_64
manylinux_2_17_aarch64
manylinux_2_17_i686
manylinux_2_17_x86_64
manylinux_2_5_i686
musllinux_1_2_aarch64
musllinux_1_2_i686
musllinux_1_2_x86_64
win32
win_amd64

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)
Extras:
Dependencies: