Skip to main content
Documentation Status https://github.com/MacHu-GWU/compress-project/actions/workflows/main.yml/badge.svg https://codecov.io/gh/MacHu-GWU/compress-project/branch/main/graph/badge.svg https://img.shields.io/pypi/v/compress.svg https://img.shields.io/pypi/l/compress.svg https://img.shields.io/pypi/pyversions/compress.svg https://img.shields.io/badge/Release_History!--None.svg?style=social https://img.shields.io/badge/STAR_Me_on_GitHub!--None.svg?style=social
https://img.shields.io/badge/Link-Document-blue.svg https://img.shields.io/badge/Link-API-blue.svg https://img.shields.io/badge/Link-Install-blue.svg https://img.shields.io/badge/Link-GitHub-blue.svg https://img.shields.io/badge/Link-Submit_Issue-blue.svg https://img.shields.io/badge/Link-Request_Feature-blue.svg https://img.shields.io/badge/Link-Download-blue.svg

Welcome to compress Documentation

https://compress.readthedocs.io/en/latest/_static/compress-logo.png

compress provides a unified interface for various mature data compression algorithms. It supports algorithms from both the Python Standard Library and the community, offering a range of options for different compression needs.

Supported Algorithms

From Python Standard library

From Community (Additional Library Required)

  • snappy, from Google, lower compression ratio but super fast! (on MacOS, you need to install it via brew install snappy, on Ubuntu, you need sudo apt-get install libsnappy-dev.

  • lz4, lower ratio, super fast!

  • pyzstd, very fast!

Note: Community libraries are not installed by default with compress. To include them, use:

pip install compress[lz4,snappy,zstd]

These libraries require a C compiler. If you encounter issues installing the C compiler for your OS, refer to this tutorial.

Usage Example

import sys
import compress.api as compress

data = ("hello world" * 1000).encode("utf-8")
print(f"before: {sys.getsizeof(data)}")

data_compressed = compress.compress(
    algo=compress.Algorithm.gzip,
    data=data,
    kwargs={"compresslevel": 9},
)
print(f"after: {sys.getsizeof(data_compressed)}")

Benchmark

This website provides comprehensive comparison and visualization. But how do you know how it works on your own production environment?.

compress comes with a tool to run benchmark test for All test case, All algorithm, All parameters, and you will get informative stats about ratio, compress/decompress speed in ascii table format. Then You are able to visualize it in the way you preferred.

To run benchmark test, just do:

pip install -r requirements-benchmark.txt
python ./benchmark/run_benchmark.py

Then you can find the result at benchmark/result.txt.

Install

compress is released on PyPI, so all you need is to:

$ pip install compress

To upgrade to latest version:

$ pip install --upgrade compress

Release files for compress 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for compress 0.1.1
File Size Uploaded
compress-0.1.1.tar.gz 15.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for compress 0.1.1
File Interpreter ABI Platform
compress-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 27.3 kB

Release files / compress-0.1.1.tar.gz

Download URL compress-0.1.1.tar.gz
Size 15.4 kB
Tags Source
SHA-256 checksum
How to use checksums
2515acb17f3b276eff5be3a168598c1e59292fd546e020abfe7be53071a183d2
BLAKE2b-256 checksum
How to use checksums
3f0d4ca2f7ec3f2261c0a4d788098beadf2b09b154b315383e5a26ff310c4525
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.10.10

Release files / compress-0.1.1-py3-none-any.whl

Download URL compress-0.1.1-py3-none-any.whl
Size 12.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f5457d46581211c7336f0935d23e0ebc193ccb7e13b769ba646207e5734f5130
BLAKE2b-256 checksum
How to use checksums
d32c209d3ea9fcebabd01734c66be817950f8c97ea92469c51eaef8988691bfb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.10.10

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page