python-snappy
=============
Python library for the snappy compression library from Google.
This library is distributed under the New BSD License
(http://www.opensource.org/licenses/bsd-license.php).
Dependencies
============
* snappy library >= 1.0.2 (or revision 27)
http://code.google.com/p/snappy/
* Supports Python 2.7 and Python 3
Build & Install
===============
Build:
::
python setup.py build
Install:
::
python setup.py install
Or install it from PyPi:
::
pip install python-snappy
Run tests
=========
::
nosetest test_snappy.py
Benchmarks
==========
*snappy vs. zlib*
**Compressing:**
::
%timeit zlib.compress("hola mundo cruel!")
100000 loops, best of 3: 9.64 us per loop
%timeit snappy.compress("hola mundo cruel!")
1000000 loops, best of 3: 849 ns per loop
**Snappy** is **11 times faster** than zlib when compressing
**Uncompressing:**
::
r = snappy.compress("hola mundo cruel!")
%timeit snappy.uncompress(r)
1000000 loops, best of 3: 755 ns per loop
r = zlib.compress("hola mundo cruel!")
%timeit zlib.decompress(r)
1000000 loops, best of 3: 1.11 us per loop
**Snappy** is **twice** as fast as zlib
Commandline usage
=================
You can invoke Python Snappy to compress or decompress files or streams from
the commandline after installation as follows
Compressing and decompressing a file:
::
$ python -m snappy -c uncompressed_file compressed_file.snappy
$ python -m snappy -d compressed_file.snappy uncompressed_file
Compressing and decompressing a stream:
::
$ cat uncompressed_data | python -m snappy -c > compressed_data.snappy
$ cat compressed_data.snappy | python -m snappy -d > uncompressed_data
You can get help by running
::
$ python -m snappy --help
Snappy - compression library from Google (c)
http://code.google.com/p/snappy