用于python的lz4frame库(通过c绑定)

py-lz4framed的Python项目详细描述


概述

这是一个用于python的LZ4帧压缩库 v3.2+(和2.7+),绑定到yann collet的LZ4 C implementation

安装/包装

# To get from PyPI
pip3 install py-lz4framed

# To only build extension modules inline (e.g. in repository)
python3 setup.py build_ext -i

# To build & install globally
python3 setup.py install

注释

用法

单功能操作:

importlz4framedcompressed=lz4framed.compress(b'binary data')uncompressed=lz4framed.decompress(compressed)

迭代压缩(文件或bytesio实例):

withopen('myFile','wb')asf:# Context automatically finalises frame on completion, unless an exception occurswithCompressor(f)asc:try:while(...):c.update(moreData)exceptLz4FramedNoDataError:pass

从类似文件的对象解压缩:

withopen('myFile','rb')asf:try:forchunkinDecompressor(f):decoded.append(chunk)exceptLz4FramedNoDataError:# Compress frame data incomplete - error case...

另请参见lz4framed/__main__.py 示例用法。

文件

importlz4framedprint(lz4framed.__version__,lz4framed.LZ4_VERSION,lz4framed.LZ4F_VERSION)help(lz4framed)

命令行实用程序

python3 -mlz4framed
USAGE: lz4framed (compress|decompress)(INFILE|-)[OUTFILE](De)compresses an lz4 frame. Input is read from INFILE unless set to '-', in
which case stdin is used. If OUTFILE is not specified, output goes to stdout.

测试

静态

此库已使用 flake8pylint,使用修改的配置-请参阅 pylint.rcflake8.cfg

单位

python3 -m unittest discover -v .

为什么?

唯一一个现有的LZ4帧互操作实现,我知道 写作时 (lz4tools)具有以下特性 限制:

  • 不完整的实现,例如引用和内存泄漏 失败时
  • 缺少单元测试
  • 非线程安全
  • 在低水平(de)压缩操作期间不释放GIL
  • 没有满足外部项目的要求

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
加密如何在Java中使用Skipjack(skip32)将数据库中的顺序整数随机化   java Android在两个活动之间传递数据获取NullPointerException   在构造函数中传递的java上下文显示错误   java将密钥添加到选定的密钥集   javascript为什么带有特殊字符的字符串在GET和POST方法中的行为不同?   java将反射。方法创建一个函数接口   设置Javasocket的端口   java通过一次按键调用MenuItem   java和引擎加载图形:为什么我的背景纹理很小,而且是颠倒的   如何将UV纹理从blender加载到opengl 安卓 java   跨Java虚拟机实现的jvm Java toString表示?   spring在Java服务器页面的上下文中这叫什么?