brotli/CHANGELOG.md

257 lines
5.5 KiB
Markdown
Raw Normal View History

# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## Unreleased
### 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
- encoder: C++ API
## [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.