Skip to main content

CFFI-based Python binding for LZF stream compression

Project description

https://travis-ci.org/lordmauve/lzf.svg?branch=master

lzf allows reading and writing files compressed with the LZF compression format.

To crib some of the features listed for LibLZF:

  • Very fast compression speeds.
  • Mediocre compression ratios - you can usually expect about 40-50% compression for typical binary data Easy to use (just two functions, no state attached).
  • Freely usable (BSD-type-license)

API

This package provides reading and writing LZF data as Python file like objects.

lzf.open(file, mode='r', encoding=None, errors=None)

Open a LZF stream for reading or writing.

file may be a path to an on-disk file, or a file-like object open for reading or writing (whatever you pass to mode).

mode must be r or w to indicate reading or writing, optionally with b or t to indicate binary or text-mode IO. If the mode is text (the default), then U is also accepted to turn on universal newline mode.

encoding and errors are as for the built-in open() function.

Note that lzf.open() takes the Python 3 model for text IO, even on Python 2. Unless mode contains 'b', then the returned file-like object will read or write Unicode strings.

Examples

To open an on-disk LZF-compressed text file and print it linewise:

import lzf

with lzf.open('/path/to/file.txt.lzf') as f:
    for line in f:
        print(line)

To compress some binary data with LZF:

import lzf

with lzf.open('/path/to/file.lzf', 'wb') as f:
    f.write(b'hello world')

To read LZF compressed CBOR structures from a URL:

import lzf
import cbor2
from urllib.request import urlopen  # Use urllib2 in Python 2

SOME_URL = 'http://example.com/data.cbor.lzf'

with lzf.open(urlopen(SOME_URL), 'rb') as f:
    print(cbor2.load(f))

(You’ll need cbor2 installed if you want to try this.)

Project details


Release history Release notifications

This version
History Node

0.1

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
lzf-0.1.tar.gz (28.4 kB) Copy SHA256 hash SHA256 Source None Jul 24, 2017

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page