NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #318 most downloaded on PyPI
LZ4 Bindings for Python
Last release 11 months ago
03 Nov 2025
Ships fairly regularly
a new release about every 5 months
Most releases are documented
notes for 50 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
15 years old
86 releases · first in 2012
Enable CPython free-threaded wheel builds by @andfoy in #301
Full Changelog: v4.4.4...v4.4.5
One column per quarter.
build_dist workflow - (re)add arm support for Linux and Windows by @K0lb3 in #300
Disable aarch64 builds due to compiler failure by @jonathanunderwood in #298
Full Changelog: v4.4.2...v4.4.3
Add .readthedocs.yml by @jonathanunderwood in https://github.com/python-lz4/python-lz4/pull/268
Full Changelog: https://github.com/python-lz4/python-lz4/compare/v4.3.2...v4.3.3
Fixups by @jonathanunderwood in #266
Update some more github action versions by @jonathanunderwood in #265
Full Changelog: v4.3.0...v4.3.1
Add wheel building for Linux Aarch64 and MacOS Arm64 by @jonathanunderwood in #264
Full Changelog: v4.2.0...v4.3.0
Update bundled libraries to lz4 1.9.4 by @jonathanunderwood in https://github.com/python-lz4/python-lz4/pull/262
Full Changelog: https://github.com/python-lz4/python-lz4/compare/v4.1.0...v4.2.0
Build wheels for python 3.11 by @dbaxa in https://github.com/python-lz4/python-lz4/pull/257
Full Changelog: https://github.com/python-lz4/python-lz4/compare/v4.0.2...v4.1.0
This release fixes #247 (via #255) - thanks to @jmg-duarte for the fix.
This release fixes #247 (via #255) - thanks to @jmg-duarte for the fix.
Add flush method to LZ4FrameFile by @pedrovhb in https://github.com/python-lz4/python-lz4/pull/245
flush method to LZ4FrameFile by @pedrovhb in https://github.com/python-lz4/python-lz4/pull/245Full Changelog: https://github.com/python-lz4/python-lz4/compare/v4.0.0...v4.0.1
This release relegates the stream bindings to experimental status and disables them in all wheel builds. This was necessary as the test suite was caus
Nothing published for this version
Nothing published for this version
This release adds support for publishing wheels to PyPi for Python 3.9. Wheel building is currently broken for Python 3.9 on Arm/Aarch64.
This release adds support for publishing wheels to PyPi for Python 3.9. Wheel building is currently broken for Python 3.9 on Arm/Aarch64.
This release also drops building of wheels for Python 3.5.
This required some significant changes to the Travis and Appveyor configurations including:
Travis now publishes wheels for Arm thanks to @ossdev07
This release contains various fixups thanks to @godlygeek:
This release contains various fixups thanks to @godlygeek:
This release adds block size record support to the stream bindings thanks to @tSed.
This release adds block size record support to the stream bindings thanks to @tSed.
In addition this release contains fixups to the tests to reduce execution time (@tsed), and a few small fixes.
This release removes py3c from the codebase and strips out unused Python 2 support code. No functional changes are included with this release.
This release removes py3c from the codebase and strips out unused Python 2 support code. No functional changes are included with this release.
This release fixes an issue that prevented the OSX wheels from being published to PyPi, and contains no functional changes.
This release fixes an issue that prevented the OSX wheels from being published to PyPi, and contains no functional changes.
Drops support for Python 2 (although some dead code remains for future removal)
This release:
This release updates the bundled LZ4 library to version 1.9.1.
This release updates the bundled LZ4 library to version 1.9.1.
The 2.2.x releases will be the final release that support Python 2.7. In the near future we'll begin work on the 3.0.x release which will only support Python >= 3.5, and will require LZ4 > 1.9.0.
Cleanup some code in _block.c to suppress some compiler warnings
_block.c to suppress some compiler warningsNothing published for this version
This release contains no functional changes, it simply fixes the broken wheel deployment for OSX.
This release contains no functional changes, it simply fixes the broken wheel deployment for OSX.
This release fixes issue #172 which causes failures in decompression for the Frame bindings on Windows.
This release fixes issue #172 which causes failures in decompression for the Frame bindings on Windows.
This release contains no user facing changes, but does include a built wheel built for Python 2.7 on OSX.
This release contains no user facing changes, but does include a built wheel built for Python 2.7 on OSX.
This release follows some re-working of the CI/CD infrastructure, and integration with the codecov service.
This release contains no functional changes other than changes to the Appveyor configuration for publishing wheels.
This release contains no functional changes other than changes to the Appveyor configuration for publishing wheels.
This release contains no functional changes other than changes to the Travis configuration for publishing wheels.
This release contains no functional changes other than changes to the Travis configuration for publishing wheels.
A simplification of the tox.ini file (thanks to @jdufresne)
This release brings:
tox.ini file (thanks to @jdufresne)pkgconfig availability (#158, thanks to @raymondEhlers)cibuildwheel into travis builds so as to build and publish binary wheels for Linux and OSX (fixes #99 , #144 , #153)Improves the speed of importing the module by avoiding the use of pkg_resources (#154) - thanks to @cgohike)
This release:
pkg_resources (#154) - thanks to @cgohike)This release updates the bundled LZ4 libraries to version 1.8.3. This fixes a bug with the block format compression/decompression. This fixes #150.
This release updates the bundled LZ4 libraries to version 1.8.3. This fixes a bug with the block format compression/decompression. This fixes #150.
Thanks to @ajholyoake.
This release changes the handling of errors for block decompression when uncompressed_size > 0. In this case, we no longer check that the uncompressed
This release changes the handling of errors for block decompression when uncompressed_size > 0. In this case, we no longer check that the uncompressed data has exactly the size specified by uncompressed_size: this argument is now used as an upper bound.
In addition, we introduce a new exception: LZ4BlockError which is raised whenever the LZ4 library fails.
These two changes together allow "guessing" of the uncompressed data size: simply set uncompressed_size to a number and try decompress, and catch LZ4BlockError. If LZ4BlockError is raised, increase uncompressed_size and try again.
See the documentation for more details and examples.
Fix setup.py to gracefully handle old system installed versions of LZ4 libraries (thanks to @nikitos3000 )
setup.py to gracefully handle old system installed versions of LZ4 libraries (thanks to @nikitos3000 )This release fixes #134 - tests failed when run under python setup.py test, but passed when running under tox.
This release fixes #134 - tests failed when run under python setup.py test, but passed when running under tox.
It's now possible to specify a compession dictionary for block compression. Thanks to @mkuyper for this work.
Changes in this release:
This release removes the deprecated functions which were marked as remove in 1.0, but nonetheless remained:
This release removes the deprecated functions which were marked as remove in 1.0, but nonetheless remained:
lz4.lz4version()LZ4FrameCompressor.finalize()As a side effect, we noo longer have a dependency on the deprecation package.
This release fixes a bug which stopped lz4.frame.open from functioning for any mode with the t (text) specifiers. Issue #122. Thanks to @nick-hahner f
This release fixes a bug which stopped lz4.frame.open from functioning for any mode with the t (text) specifiers. Issue #122. Thanks to @nick-hahner for the report.
Only documentation updates since 0.23.2. This marks the release of a stable frame binding API.
Only documentation updates since 0.23.2. This marks the release of a stable frame binding API.
Fixes an error in the deprecated LZ4Compressor.finalize() method
This release:
LZ4Compressor.finalize() methodDeprecates lz4.frame.LZ4FrameCompressor.finalize()
This release:
Update to py3c version 1.0 header files
__init__.pyThis version includes some docstring updates.
This version includes some docstring updates.
Nothing published for this version
Nothing published for this version
A glitch prevented Appveyor from pushing 0.21.1 to PyPi. This release is functionally identical to 0.21.1.
A glitch prevented Appveyor from pushing 0.21.1 to PyPi. This release is functionally identical to 0.21.1.
Improves test coverage to the level planned for version 1.0
This release:
LZ4FrameCompressor.flush() methodLZ4FrameDecompressor behaviour with respect to handling data after the end of a frame markerLZ4FrameDecompressor.reset() methodWith this release we're entering feature freeze for 1.0 release. Documentation updates and bug fixes are the only expected changes.
This release bumps the bundled LZ4 library files to version 1.8.1.2.
This release bumps the bundled LZ4 library files to version 1.8.1.2.
This release fixes a memory leak in lz4.frame.decompress_chunk() which also impacted the file handling functionality (Issue #106). Thanks to @alex2108
This release fixes a memory leak in lz4.frame.decompress_chunk() which also impacted the file handling functionality (Issue #106). Thanks to @alex2108 for the report and reproducer.
This release adds compressed file handling capability to the lz4.frame sub-package.
This release adds compressed file handling capability to the lz4.frame sub-package.
This necessitated some changes to the API of lz4.frame.decompress_chunk, ad some smaller changes to the LZ4FrameCompressor and LZ4FrameDecompressor classes. Please see updated documentation for further details.
Nothing published for this version
This release fixes a memory leak that was introduced in lz4.frame.decompress in 0.18.1. This leak resulted from an incorrect ref count on the returned
This release fixes a memory leak that was introduced in lz4.frame.decompress in 0.18.1. This leak resulted from an incorrect ref count on the returned result which prevented it from ever being released and garbage collected. Thanks to @bt-wil for the report and reproducer (issue #96).
This is a minor bugfix release which fixes two small bugs which would result in source references not being released on error conditions in lz4.frame.
This is a minor bugfix release which fixes two small bugs which would result in source references not being released on error conditions in lz4.frame.compress.
This release changes the strategy for allocating memory to not use undocumented and potentially fragile Python internals (Py_SIZE). This may have a sm
This release changes the strategy for allocating memory to not use undocumented and potentially fragile Python internals (Py_SIZE). This may have a small performance impact, but brings stronger guarantees for future stability.
This release fixes a pathological case where compressing and decompressing a zero length bytes object could result in the resulting bytes object causi
This release fixes a pathological case where compressing and decompressing a zero length bytes object could result in the resulting bytes object causing False to be returned from val == 'b'.
This release contains various fixes to docstrings and improvements to documentation only.
This release contains various fixes to docstrings and improvements to documentation only.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →