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 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. To link to a system-installed libdeflate, set the LIBDEFLATE_PREFIX environment variable:

LIBDEFLATE_PREFIX=/opt/homebrew/Cellar/libdeflate/1.20 python -m build

Testing

pip install -r requirements-dev.lock
python -m 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.7.0.tar.gz (233.6 kB view hashes)

Uploaded Source

Built Distributions

deflate-0.7.0-cp312-cp312-win_amd64.whl (49.5 kB view hashes)

Uploaded CPython 3.12 Windows x86-64

deflate-0.7.0-cp312-cp312-win32.whl (43.1 kB view hashes)

Uploaded CPython 3.12 Windows x86

deflate-0.7.0-cp312-cp312-musllinux_1_1_x86_64.whl (50.8 kB view hashes)

Uploaded CPython 3.12 musllinux: musl 1.1+ x86-64

deflate-0.7.0-cp312-cp312-musllinux_1_1_i686.whl (53.4 kB view hashes)

Uploaded CPython 3.12 musllinux: musl 1.1+ i686

deflate-0.7.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (50.7 kB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

deflate-0.7.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (53.5 kB view hashes)

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

deflate-0.7.0-cp312-cp312-macosx_11_0_arm64.whl (39.2 kB view hashes)

Uploaded CPython 3.12 macOS 11.0+ ARM64

deflate-0.7.0-cp312-cp312-macosx_10_9_x86_64.whl (54.2 kB view hashes)

Uploaded CPython 3.12 macOS 10.9+ x86-64

deflate-0.7.0-cp311-cp311-win_amd64.whl (49.5 kB view hashes)

Uploaded CPython 3.11 Windows x86-64

deflate-0.7.0-cp311-cp311-win32.whl (43.1 kB view hashes)

Uploaded CPython 3.11 Windows x86

deflate-0.7.0-cp311-cp311-musllinux_1_1_x86_64.whl (50.8 kB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

deflate-0.7.0-cp311-cp311-musllinux_1_1_i686.whl (53.4 kB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ i686

deflate-0.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (50.7 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

deflate-0.7.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (53.5 kB view hashes)

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

deflate-0.7.0-cp311-cp311-macosx_11_0_arm64.whl (39.2 kB view hashes)

Uploaded CPython 3.11 macOS 11.0+ ARM64

deflate-0.7.0-cp311-cp311-macosx_10_9_x86_64.whl (54.2 kB view hashes)

Uploaded CPython 3.11 macOS 10.9+ x86-64

deflate-0.7.0-cp310-cp310-win_amd64.whl (49.5 kB view hashes)

Uploaded CPython 3.10 Windows x86-64

deflate-0.7.0-cp310-cp310-win32.whl (43.0 kB view hashes)

Uploaded CPython 3.10 Windows x86

deflate-0.7.0-cp310-cp310-musllinux_1_1_x86_64.whl (50.8 kB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

deflate-0.7.0-cp310-cp310-musllinux_1_1_i686.whl (53.4 kB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ i686

deflate-0.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (50.7 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

deflate-0.7.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (53.5 kB view hashes)

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

deflate-0.7.0-cp310-cp310-macosx_11_0_arm64.whl (39.2 kB view hashes)

Uploaded CPython 3.10 macOS 11.0+ ARM64

deflate-0.7.0-cp310-cp310-macosx_10_9_x86_64.whl (54.2 kB view hashes)

Uploaded CPython 3.10 macOS 10.9+ x86-64

deflate-0.7.0-cp39-cp39-win_amd64.whl (49.5 kB view hashes)

Uploaded CPython 3.9 Windows x86-64

deflate-0.7.0-cp39-cp39-win32.whl (43.0 kB view hashes)

Uploaded CPython 3.9 Windows x86

deflate-0.7.0-cp39-cp39-musllinux_1_1_x86_64.whl (50.8 kB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

deflate-0.7.0-cp39-cp39-musllinux_1_1_i686.whl (53.4 kB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ i686

deflate-0.7.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (50.7 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

deflate-0.7.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (53.5 kB view hashes)

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

deflate-0.7.0-cp39-cp39-macosx_11_0_arm64.whl (39.2 kB view hashes)

Uploaded CPython 3.9 macOS 11.0+ ARM64

deflate-0.7.0-cp39-cp39-macosx_10_9_x86_64.whl (54.2 kB view hashes)

Uploaded CPython 3.9 macOS 10.9+ x86-64

deflate-0.7.0-cp38-cp38-win_amd64.whl (49.5 kB view hashes)

Uploaded CPython 3.8 Windows x86-64

deflate-0.7.0-cp38-cp38-win32.whl (43.0 kB view hashes)

Uploaded CPython 3.8 Windows x86

deflate-0.7.0-cp38-cp38-musllinux_1_1_x86_64.whl (50.8 kB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

deflate-0.7.0-cp38-cp38-musllinux_1_1_i686.whl (53.4 kB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.1+ i686

deflate-0.7.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (50.7 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

deflate-0.7.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (53.5 kB view hashes)

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

deflate-0.7.0-cp38-cp38-macosx_11_0_arm64.whl (39.2 kB view hashes)

Uploaded CPython 3.8 macOS 11.0+ ARM64

deflate-0.7.0-cp38-cp38-macosx_10_9_x86_64.whl (54.2 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