- Changed one-shot
decompress()and streamingDecompressor.process()/Decompressor.decompress()to raisebrotlicffi.errorfor trailing bytes after a complete Brotli stream, including calls without an output limit. Previously tolerated input is now rejected, and any output produced during the failing call is discarded. This prevents infinite drain loops in streaming consumers.
- Fixed a bug where
Decompressor.decompress()could leave stale unconsumed input behind after fully consuming a chunk of compressed data, causing subsequent calls to fail or re-process old data. - Since cibuildwheel dropped support, this release does not include Python 3.8 wheels.
- Added support for the free-threaded build of Python 3.14.
- Concurrent sharing of Compressor or Decompressor objects now raises an exception.
- Upgraded libbrotli to v1.2.0.
- Added
output_buffer_limitparameter toDecompressor.decompress()andDecompressor.process()methods to allow mitigation of unexpectedly large output. This addresses potential security concerns where maliciously crafted compressed data could result in excessive memory usage during decompression.
- Upgraded libbrotli to v1.1.0
- Added explicit support for Python 3.10, 3.11, and 3.12
- Removed support for Python 2.7, 3.5, and 3.6
- Added
manylinux_aarch64wheels
- Avoid byte/string comparison warning in error message construction
- Updated to v1.0.9 of the Brotli library
- Library version now follows Brotli version
- Removed the
dictionaryparameter fromcompressandCompressor - NOTE: Python 2.7 wheels for Windows likely won't work until google/brotli#848 is resolved
- Renamed the package on PyPI to
brotlicffi, all further updates will be published to the new package. Using thebrotlipyis deprecated. - Changed the importable namespace from
brotlitobrotlicffito no longer conflict with theBrotliPyPI package. - Added
process()method toCompressorandDecompressor. - Added
is_finished()method toDecompressor.
- Update to v0.6.0 of the Brotli library.
- Resolved a bug where
decompress()would return an empty bytestring instead of erroring if the provided bytestring was small enough. - Added the
finish()method to the streaming decompressor.
- Update to v0.5.2 of the Brotli library.
- Add new exception type (
Error). - Add compatibility with C++ brotli library by aliasing
Errortoerror. - Extra error checking of input parameters to the compressor.
- Update to v0.5.0 of the Brotli library.
- Extend one-shot compression API to include all control parameters.
- Added streaming/incremental compression API.
- Added flags to control compression mode.
Update to v0.4.0 of the Brotli library.
Update to v0.3.0 of the Brotli library.
Fix broken brotli.compress support on Windows.
- Added basic for
brotli.compressthrough a C wrapper included in this library.