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
[1.1.0] - 2023-08-28
Added
- decoder: 
BrotliDecoderAttachDictionary - decoder: 
BrotliDecoderOnFinish callback behind BROTLI_REPORTING - decoder: 
BrotliDecoderSetMetadataCallbacks - encoder: 
BrotliEncoderPrepareDictionary, BrotliEncoderDestroyPreparedDictionary, BrotliEncoderAttachPreparedDictionary - decoder: 
BrotliEncoderOnFinish callback behind BROTLI_REPORTING - common: 
BrotliSharedDictionaryCreateInstance, BrotliSharedDictionaryDestroyInstance, BrotliSharedDictionaryAttach - CLI: 
--dictionary option - 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_PORTABLE option 
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_window option 
Improved
- encoder: better compression
 
[1.0.3] - 2018-03-02
Added
- decoder: 
BROTLI_DECODER_PARAM_LARGE_WINDOW enum - encoder: 
BROTLI_PARAM_LARGE_WINDOW enum - 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 
bro to brotli 
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: 
brotlidump tool to explore brotli streams - go: wrapper
 
Removed
- decoder: API with plain 
Brotli prefix 
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 
BrotliDecoder prefix instead of plain Brotli - build: Bazel, CMake
 
Deprecated
- decoder: API with plain 
Brotli prefix 
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
[0.4.0] - 2016-06-14
Added
- encoder: faster compression modes (quality 0 and 1)
 - decoder: 
BrotliGetErrorCode, BrotliErrorString and BROTLI_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: 
--window option tools/version.h file- decoder: low level streaming API
 - decoder: custom memory manager API
 
Deprecated
- decoder: streaming API using 
BrotliInput struct 
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: 
--verbose and --repeat options 
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.