Release v0.0.3 (What’s new?).
Welcome to compress
Documentation¶
There’s lots of mature data compression algorithm you can choose from, compress
provides normalized API to use them and switch between them.
It supports:
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 needsudo apt-get install libsnappy-dev
. - lz4, lower ratio, super fast!
Note
some package are not installed along with compress
. Because all of them needs C compiler, you have to manually install them. If you have trouble installing C compiler for your OS, read THIS TUTORIAL.
Usage:
>>> from compress import Compressor
>>> binary_data = ("hello world! " * 100).encode("utf-8")
>>> c = Compressor()
>>> c.use_gzip() # or use_bz2, use_lzma, use_lz4, use_snappy
>>> c.compress(binary_data, zlib_level=9)
>>> c.decompress(binary_data)
Other API for lazy developer:
>>> import compress
>>> compress.compress_bytes_to_bytes
>>> compress.compress_str_to_bytes
>>> compress.compress_bytes_to_b64str # compress, and returns b64 encoded str
>>> compress.compress_str_to_b64str # compress string and returns b64 encoded str
>>> compress.decompress_bytes_to_bytes # inverse of compress_bytes_to_bytes
>>> compress.decompress_bytes_to_str # inverse of compress_str_to_bytes
>>> compress.decompress_b64str_to_bytes # inverse of compress_bytes_to_b64str
>>> compress.decompress_b64str_to_str # inverse of compress_str_to_b64str
compress_bytes_to_bytes, compress_str_to_bytes,
compress_bytes_to_b64str, compress_str_to_b64str,
decompress_bytes_to_bytes, decompress_bytes_to_str,
decompress_b64str_to_bytes, decompress_b64str_to_str,
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 .tab
and ascii table
format. Then You are able to visualize it in the way you preferred.
To run benchmark test, just:
$ pip install -r requirements-benchmark.txt
$ python ./benchmark/run.py
Install¶
compress
is released on PyPI, so all you need is:
$ pip install compress
To upgrade to latest version:
$ pip install --upgrade compress
About the Author¶
(\ (\
( -.-)o I am a lovely Rabbit!
o_(")(")
Sanhe Hu is a very active Python Developer Since 2010. Research area includes Machine Learning, Big Data Infrastructure, Block Chain, Business Intelligent, AWS, Distributive System. Love photography, outdoor, arts, game, and also the best Python.
- My Github: https://github.com/MacHu-GWU
- My HomePage: http://www.sanhehu.org/
- My Linkedin: https://www.linkedin.com/in/sanhehu/