Skip to main content

Python wrapper for libdeflate.

Project description

deflate API

This is a very thin Python wrapper Eric Biggers' excellent libdeflate.

Currently, it only 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 size of the decompressed file needs to be kept through additional logic. Ditto for checksums.

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

Installing deflate will either link to or compile libdeflate, depending on the following:

  1. If a LIBDEFLATE_PREFIX environment variable is set, it will always be used to look for a system-installed libdeflate.
  2. If the pkgconfig package is installed, it will be used to automatically find (and link to) a system-installed libdeflate if available.
  3. Falls back to compiling the bundled libdeflate code. This behavior can be triggered manually by setting USE_BUNDLED_DEFLATE=1.
export USE_BUNDLED_DEFLATE=no  # default is no
export LIBDEFLATE_PREFIX=/path/to/lib/deflate  # default: no path given
pip install pkgconfig  # optional, you also need pkg-config cli tool
pip install deflate

Testing

pip install pytest
pip install pytest-benchmark
pytest

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

deflate-0.6.0.tar.gz (203.8 kB view hashes)

Uploaded Source

Built Distributions

deflate-0.6.0-cp312-cp312-win_amd64.whl (50.8 kB view hashes)

Uploaded CPython 3.12 Windows x86-64

deflate-0.6.0-cp312-cp312-win32.whl (44.4 kB view hashes)

Uploaded CPython 3.12 Windows x86

deflate-0.6.0-cp312-cp312-musllinux_1_1_x86_64.whl (300.9 kB view hashes)

Uploaded CPython 3.12 musllinux: musl 1.1+ x86-64

deflate-0.6.0-cp312-cp312-musllinux_1_1_i686.whl (277.0 kB view hashes)

Uploaded CPython 3.12 musllinux: musl 1.1+ i686

deflate-0.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (261.5 kB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

deflate-0.6.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (258.2 kB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

deflate-0.6.0-cp312-cp312-macosx_11_0_arm64.whl (44.6 kB view hashes)

Uploaded CPython 3.12 macOS 11.0+ ARM64

deflate-0.6.0-cp312-cp312-macosx_10_9_x86_64.whl (64.6 kB view hashes)

Uploaded CPython 3.12 macOS 10.9+ x86-64

deflate-0.6.0-cp311-cp311-win_amd64.whl (50.8 kB view hashes)

Uploaded CPython 3.11 Windows x86-64

deflate-0.6.0-cp311-cp311-win32.whl (44.4 kB view hashes)

Uploaded CPython 3.11 Windows x86

deflate-0.6.0-cp311-cp311-musllinux_1_1_x86_64.whl (301.7 kB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

deflate-0.6.0-cp311-cp311-musllinux_1_1_i686.whl (278.5 kB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ i686

deflate-0.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (260.8 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

deflate-0.6.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (257.5 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

deflate-0.6.0-cp311-cp311-macosx_11_0_arm64.whl (44.6 kB view hashes)

Uploaded CPython 3.11 macOS 11.0+ ARM64

deflate-0.6.0-cp311-cp311-macosx_10_9_x86_64.whl (64.6 kB view hashes)

Uploaded CPython 3.11 macOS 10.9+ x86-64

deflate-0.6.0-cp310-cp310-win_amd64.whl (50.8 kB view hashes)

Uploaded CPython 3.10 Windows x86-64

deflate-0.6.0-cp310-cp310-win32.whl (44.4 kB view hashes)

Uploaded CPython 3.10 Windows x86

deflate-0.6.0-cp310-cp310-musllinux_1_1_x86_64.whl (300.8 kB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

deflate-0.6.0-cp310-cp310-musllinux_1_1_i686.whl (277.8 kB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ i686

deflate-0.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (260.8 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

deflate-0.6.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (257.5 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

deflate-0.6.0-cp310-cp310-macosx_11_0_arm64.whl (44.6 kB view hashes)

Uploaded CPython 3.10 macOS 11.0+ ARM64

deflate-0.6.0-cp310-cp310-macosx_10_9_x86_64.whl (64.6 kB view hashes)

Uploaded CPython 3.10 macOS 10.9+ x86-64

deflate-0.6.0-cp39-cp39-win_amd64.whl (50.8 kB view hashes)

Uploaded CPython 3.9 Windows x86-64

deflate-0.6.0-cp39-cp39-win32.whl (44.4 kB view hashes)

Uploaded CPython 3.9 Windows x86

deflate-0.6.0-cp39-cp39-musllinux_1_1_x86_64.whl (300.6 kB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

deflate-0.6.0-cp39-cp39-musllinux_1_1_i686.whl (277.6 kB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ i686

deflate-0.6.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (260.4 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

deflate-0.6.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (257.2 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

deflate-0.6.0-cp39-cp39-macosx_11_0_arm64.whl (44.6 kB view hashes)

Uploaded CPython 3.9 macOS 11.0+ ARM64

deflate-0.6.0-cp39-cp39-macosx_10_9_x86_64.whl (64.6 kB view hashes)

Uploaded CPython 3.9 macOS 10.9+ x86-64

deflate-0.6.0-cp38-cp38-win_amd64.whl (50.8 kB view hashes)

Uploaded CPython 3.8 Windows x86-64

deflate-0.6.0-cp38-cp38-win32.whl (44.4 kB view hashes)

Uploaded CPython 3.8 Windows x86

deflate-0.6.0-cp38-cp38-musllinux_1_1_x86_64.whl (301.1 kB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

deflate-0.6.0-cp38-cp38-musllinux_1_1_i686.whl (278.0 kB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.1+ i686

deflate-0.6.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (261.5 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

deflate-0.6.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (258.1 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

deflate-0.6.0-cp38-cp38-macosx_11_0_arm64.whl (44.6 kB view hashes)

Uploaded CPython 3.8 macOS 11.0+ ARM64

deflate-0.6.0-cp38-cp38-macosx_10_9_x86_64.whl (64.6 kB view hashes)

Uploaded CPython 3.8 macOS 10.9+ x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page