Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
LZ4 bindings for python
C Python C++
Tree: 3accbe4324

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
src
tests
.travis.yml
README.rst
setup.py

README.rst

python-lz4

https://secure.travis-ci.org/steeve/python-lz4.png?branch=master

Overview

This package provides bindings for the lz4 compression library by Yann Collet.

Install

The package is hosted on PyPI:

$ pip install lz4
$ easy_install lz4

Usage

The library is pretty simple to use:

>>> import lz4
>>> compressed_data = lz4.dumps(data)
>>> data == lz4.loads(compressed_data)
True
>>>

Methods

The bindings provides some aliases too:

>>> import lz4
>>> lz4.LZ4_compress == lz4.compress == lz4.dumps
True
>>> lz4.LZ4_uncompress == lz4.uncompress == lz4.loads
True
>>>

Is it fast ?

Yes. Here are the results on my 2011 Macbook Pro i7 with 128kb random data:

$ python tests/bench.py
Data Size:
  Input: 131072
  LZ4: 131601
  Snappy: 131087
  LZ4 / Snappy: 1.003921
Benchmark: 200000 calls
  LZ4 Compression: 3.651002s
  Snappy Compression: 8.066482s
  LZ4 Decompression: 1.482934s
  Snappy Decompression : 3.193481s

Important note

Because LZ4 doesn't define a container format, the python bindings will insert the original data size as an integer at the start of the compressed payload, like most bindings do anyway (Java...)

Something went wrong with that request. Please try again.