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.