mirror of
https://github.com/google/brotli
synced 2025-11-04 08:07:24 +08:00
Fixed unchecked malloc for "tail" input data. Fixed inconsistencies in docstrings. Rewritten "growable buffer" to C-code, so it could run without acquiring GIL. Breaking changes: - native object allocation failures now handled at object creation time - some lower level exceptions (e.g. OOM) are not shadowed by brotli.error PiperOrigin-RevId: 810813664
5.8 KiB
5.8 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
SECURITY
- python: added
Decompressor::can_accept_more_datamethod and optionaloutput_buffer_limitargumentDecompressor::process; that allows mitigation of unexpectedly large output; reported by Charles Chan (https://github.com/charleswhchan)
[1.1.0] - 2023-08-28
Added
- decoder:
BrotliDecoderAttachDictionary - decoder:
BrotliDecoderOnFinishcallback behindBROTLI_REPORTING - decoder:
BrotliDecoderSetMetadataCallbacks - encoder:
BrotliEncoderPrepareDictionary,BrotliEncoderDestroyPreparedDictionary,BrotliEncoderAttachPreparedDictionary - decoder:
BrotliEncoderOnFinishcallback behindBROTLI_REPORTING - common:
BrotliSharedDictionaryCreateInstance,BrotliSharedDictionaryDestroyInstance,BrotliSharedDictionaryAttach - CLI:
--dictionaryoption - java: encoder wrapper:
Parameters.mode - java:
Brotli{Input|Output}Stream.attachDictionary - java: wrapper: partial byte array input
- typescript: decoder (transpiled from Java)
Removed
- build:
BROTLI_BUILD_PORTABLEoption
Fixed
- java: JNI decoder failed sometimes on power of 2 payloads
Improved
- java / js: smaller decoder footprint
- decoder: faster decoding
- encoder: faster encoding
- encoder: smaller stack frames
[1.0.9] - 2020-08-27
Re-release of 1.0.8.
[1.0.8] - 2020-08-27
SECURITY
- CVE-2020-8927: potential overflow when input chunk is >2GiB
Added
- encoder:
BROTLI_PARAM_STREAM_OFFSET
Improved
- CLI: better reporting
- CLI: workaround for "lying feof"
- java: faster decoding
- java: support "large window"
- encoder: use less memory
- release: filter sources for the tarball
[1.0.7] - 2018-10-23
Improved
- decoder: faster decoding on ARM CPU
[1.0.6] - 2018-09-13
Fixed
- build: AutoMake and CMake build
- java: JDK 8<->9 incompatibility
[1.0.5] - 2018-06-27
Added
- scripts: extraction of static dictionary from RFC
Improved
- encoder: better compression at quality 1
- encoder: better compression with "large window"
[1.0.4] - 2018-03-29
Added
- encoder:
BROTLI_PARAM_NPOSTFIX,BROTLI_PARAM_NDIRECT - CLI:
--large_windowoption
Improved
- encoder: better compression
[1.0.3] - 2018-03-02
Added
- decoder:
BROTLI_DECODER_PARAM_LARGE_WINDOWenum - encoder:
BROTLI_PARAM_LARGE_WINDOWenum - java:
BrotliInputStream.setEager
Fixed
- build: AutoMake build in some environments
- encoder: fix one-shot q=10 1-byte input compression
Improved
- encoder: better font compression
[1.0.2] - 2017-11-28
Added
- build: AutoMake
- research: better dictionary generators
[1.0.1] - 2017-09-22
Changed
- clarifications in
README.md
[1.0.0] - 2017-09-20
Added
- decoder:
BrotliDecoderSetParameter - csharp: decoder (transpiled from Java)
- java: JNI wrappers
- javascript: decoder (transpiled from Java)
- python: streaming decompression
- research: dictionary generator
Changed
- CLI: rename
brotobrotli
Removed
- decoder:
BrotliDecoderSetCustomDictionary - encoder:
BrotliEncoderSetCustomDictionary
Improved
- java: faster decoding
- encoder: faster compression
[0.6.0] - 2017-04-10
Added
- CLI: `--no-copy-stat option
- java: pure java decoder
- build: fuzzers
- research:
brotlidumptool to explore brotli streams - go: wrapper
Removed
- decoder: API with plain
Brotliprefix
Deprecated
- encoder:
BrotliEncoderInputBlockSize,BrotliEncoderCopyInputToRingBuffer,BrotliEncoderWriteData
Improved
- encoder: faster compression
- encoder: denser compression
- decoder: faster decompression
- python: release GIL
- python: use zero-copy API
[0.5.2] - 2016-08-11
Added
- common:
BROTLI_BOOL,BROTLI_TRUE,BROTLI_FALSE - decoder: API with
BrotliDecoderprefix instead of plainBrotli - build: Bazel, CMake
Deprecated
- decoder: API with plain
Brotliprefix
Changed
- boolean argument / result types are re-branded as
BROTLI_BOOL
Improved
- build: reduced amount of warnings in various build environments
- encoder: faster compression
- encoder: lower memory usage
[0.5.0] - 2016-06-15
Added
- common: library has been assembled from shared parts of decoder and encoder
- encoder: C API
Removed
- encoder: C++ API
[0.4.0] - 2016-06-14
Added
- encoder: faster compression modes (quality 0 and 1)
- decoder:
BrotliGetErrorCode,BrotliErrorStringandBROTLI_ERROR_CODES_LIST
Removed
- decoder: deprecated streaming API (using
BrotliInput)
Fixed
- decoder: possible pointer underflow
Improved
- encoder: faster compression
[0.3.0] - 2015-12-22
LICENSE
License have been upgraded to more permissive MIT.
Added
- CLI:
--windowoption tools/version.hfile- decoder: low level streaming API
- decoder: custom memory manager API
Deprecated
- decoder: streaming API using
BrotliInputstruct
Fixed
- decoder: processing of uncompressed blocks
- encoder: possible division by zero
Improved
- encoder: faster decompression
- build: more portable builds for various CPU architectures
[0.2.0] - 2015-09-01
Added
- CLI:
--verboseand--repeatoptions
Fixed
- decoder: processing of uncompressed blocks
- encoder: block stitching on quality 10 / 11
Improved
- build: CI/CD integration
- build: better test coverage
- encoder: better compression of UTF-8 content
- encoder: faster decompression
[0.1.0] - 2015-08-11
Initial release.