🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
Book a DemoInstallSign in
Socket

deflate

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

deflate

Python wrapper for libdeflate.

0.8.0
PyPI
Maintainers
1

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

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts