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.
- decoder:
BrotliDecoderAttachDictionary
- decoder:
BrotliDecoderOnFinish
callback behindBROTLI_REPORTING
- decoder:
BrotliDecoderSetMetadataCallbacks
- encoder:
BrotliEncoderPrepareDictionary
,BrotliEncoderDestroyPreparedDictionary
,BrotliEncoderAttachPreparedDictionary
- decoder:
BrotliEncoderOnFinish
callback behindBROTLI_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)
- build:
BROTLI_BUILD_PORTABLE
option
- java: JNI decoder failed sometimes on power of 2 payloads
- java / js: smaller decoder footprint
- decoder: faster decoding
- encoder: faster encoding
- encoder: smaller stack frames
Re-release of 1.0.8.
- CVE-2020-8927: potential overflow when input chunk is >2GiB
- encoder:
BROTLI_PARAM_STREAM_OFFSET
- 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
- decoder: faster decoding on ARM CPU
- build: AutoMake and CMake build
- java: JDK 8<->9 incompatibility
- scripts: extraction of static dictionary from RFC
- encoder: better compression at quality 1
- encoder: better compression with "large window"
- encoder:
BROTLI_PARAM_NPOSTFIX
,BROTLI_PARAM_NDIRECT
- CLI:
--large_window
option
- encoder: better compression
- decoder:
BROTLI_DECODER_PARAM_LARGE_WINDOW
enum - encoder:
BROTLI_PARAM_LARGE_WINDOW
enum - java:
BrotliInputStream.setEager
- build: AutoMake build in some environments
- encoder: fix one-shot q=10 1-byte input compression
- encoder: better font compression
- build: AutoMake
- research: better dictionary generators
- clarifications in
README.md
- decoder:
BrotliDecoderSetParameter
- csharp: decoder (transpiled from Java)
- java: JNI wrappers
- javascript: decoder (transpiled from Java)
- python: streaming decompression
- research: dictionary generator
- CLI: rename
bro
tobrotli
- decoder:
BrotliDecoderSetCustomDictionary
- encoder:
BrotliEncoderSetCustomDictionary
- java: faster decoding
- encoder: faster compression
- CLI: `--no-copy-stat option
- java: pure java decoder
- build: fuzzers
- research:
brotlidump
tool to explore brotli streams - go: wrapper
- decoder: API with plain
Brotli
prefix
- encoder:
BrotliEncoderInputBlockSize
,BrotliEncoderCopyInputToRingBuffer
,BrotliEncoderWriteData
- encoder: faster compression
- encoder: denser compression
- decoder: faster decompression
- python: release GIL
- python: use zero-copy API
- common:
BROTLI_BOOL
,BROTLI_TRUE
,BROTLI_FALSE
- decoder: API with
BrotliDecoder
prefix instead of plainBrotli
- build: Bazel, CMake
- decoder: API with plain
Brotli
prefix
- boolean argument / result types are re-branded as
BROTLI_BOOL
- build: reduced amount of warnings in various build environments
- encoder: faster compression
- encoder: lower memory usage
- common: library has been assembled from shared parts of decoder and encoder
- encoder: C API
- encoder: C++ API
- encoder: faster compression modes (quality 0 and 1)
- decoder:
BrotliGetErrorCode
,BrotliErrorString
andBROTLI_ERROR_CODES_LIST
- decoder: deprecated streaming API (using
BrotliInput
)
- decoder: possible pointer underflow
- encoder: faster compression
License have been upgraded to more permissive MIT.
- CLI:
--window
option tools/version.h
file- decoder: low level streaming API
- decoder: custom memory manager API
- decoder: streaming API using
BrotliInput
struct
- decoder: processing of uncompressed blocks
- encoder: possible division by zero
- encoder: faster decompression
- build: more portable builds for various CPU architectures
- CLI:
--verbose
and--repeat
options
- decoder: processing of uncompressed blocks
- encoder: block stitching on quality 10 / 11
- build: CI/CD integration
- build: better test coverage
- encoder: better compression of UTF-8 content
- encoder: faster decompression
Initial release.