1# Changelog 2 3All notable changes to this project will be documented in this file. 4 5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), 6and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). 7 8## Unreleased 9 10## [1.1.0] - 2023-08-28 11 12### Added 13 - decoder: `BrotliDecoderAttachDictionary` 14 - decoder: `BrotliDecoderOnFinish` callback behind `BROTLI_REPORTING` 15 - decoder: `BrotliDecoderSetMetadataCallbacks` 16 - encoder: `BrotliEncoderPrepareDictionary`, 17 `BrotliEncoderDestroyPreparedDictionary`, 18 `BrotliEncoderAttachPreparedDictionary` 19 - decoder: `BrotliEncoderOnFinish` callback behind `BROTLI_REPORTING` 20 - common: `BrotliSharedDictionaryCreateInstance`, 21 `BrotliSharedDictionaryDestroyInstance`, 22 `BrotliSharedDictionaryAttach` 23 - CLI: `--dictionary` option 24 - java: encoder wrapper: `Parameters.mode` 25 - java: `Brotli{Input|Output}Stream.attachDictionary` 26 - java: wrapper: partial byte array input 27 - typescript: decoder (transpiled from Java) 28 29### Removed 30 - build: `BROTLI_BUILD_PORTABLE` option 31 32### Fixed 33 - java: JNI decoder failed sometimes on power of 2 payloads 34 35### Improved 36 - java / js: smaller decoder footprint 37 - decoder: faster decoding 38 - encoder: faster encoding 39 - encoder: smaller stack frames 40 41 42## [1.0.9] - 2020-08-27 43 44Re-release of 1.0.8. 45 46 47## [1.0.8] - 2020-08-27 48 49### SECURITY 50 - CVE-2020-8927: potential overflow when input chunk is >2GiB 51 52### Added 53 - encoder: `BROTLI_PARAM_STREAM_OFFSET` 54 55### Improved 56 - CLI: better reporting 57 - CLI: workaround for "lying feof" 58 - java: faster decoding 59 - java: support "large window" 60 - encoder: use less memory 61 - release: filter sources for the tarball 62 63 64## [1.0.7] - 2018-10-23 65 66### Improved 67 - decoder: faster decoding on ARM CPU 68 69 70## [1.0.6] - 2018-09-13 71 72### Fixed 73 - build: AutoMake and CMake build 74 - java: JDK 8<->9 incompatibility 75 76 77## [1.0.5] - 2018-06-27 78 79### Added 80 - scripts: extraction of static dictionary from RFC 81 82### Improved 83 - encoder: better compression at quality 1 84 - encoder: better compression with "large window" 85 86 87## [1.0.4] - 2018-03-29 88 89### Added 90 - encoder: `BROTLI_PARAM_NPOSTFIX`, `BROTLI_PARAM_NDIRECT` 91 - CLI: `--large_window` option 92 93### Improved 94 - encoder: better compression 95 96 97## [1.0.3] - 2018-03-02 98 99### Added 100 - decoder: `BROTLI_DECODER_PARAM_LARGE_WINDOW` enum 101 - encoder: `BROTLI_PARAM_LARGE_WINDOW` enum 102 - java: `BrotliInputStream.setEager` 103 104### Fixed 105 - build: AutoMake build in some environments 106 - encoder: fix one-shot q=10 1-byte input compression 107 108### Improved 109 - encoder: better font compression 110 111 112## [1.0.2] - 2017-11-28 113 114### Added 115 - build: AutoMake 116 - research: better dictionary generators 117 118 119## [1.0.1] - 2017-09-22 120 121### Changed 122 - clarifications in `README.md` 123 124 125## [1.0.0] - 2017-09-20 126 127### Added 128 - decoder: `BrotliDecoderSetParameter` 129 - csharp: decoder (transpiled from Java) 130 - java: JNI wrappers 131 - javascript: decoder (transpiled from Java) 132 - python: streaming decompression 133 - research: dictionary generator 134 135### Changed 136 - CLI: rename `bro` to `brotli` 137 138### Removed 139 - decoder: `BrotliDecoderSetCustomDictionary` 140 - encoder: `BrotliEncoderSetCustomDictionary` 141 142### Improved 143 - java: faster decoding 144 - encoder: faster compression 145 146 147## [0.6.0] - 2017-04-10 148 149### Added 150 - CLI: `--no-copy-stat option 151 - java: pure java decoder 152 - build: fuzzers 153 - research: `brotlidump` tool to explore brotli streams 154 - go: wrapper 155 156### Removed 157 - decoder: API with plain `Brotli` prefix 158 159### Deprecated 160 - encoder: `BrotliEncoderInputBlockSize`, `BrotliEncoderCopyInputToRingBuffer`, 161 `BrotliEncoderWriteData` 162 163### Improved 164 - encoder: faster compression 165 - encoder: denser compression 166 - decoder: faster decompression 167 - python: release GIL 168 - python: use zero-copy API 169 170 171## [0.5.2] - 2016-08-11 172 173### Added 174 - common: `BROTLI_BOOL`, `BROTLI_TRUE`, `BROTLI_FALSE` 175 - decoder: API with `BrotliDecoder` prefix instead of plain `Brotli` 176 - build: Bazel, CMake 177 178### Deprecated 179 - decoder: API with plain `Brotli` prefix 180 181### Changed 182 - boolean argument / result types are re-branded as `BROTLI_BOOL` 183 184### Improved 185 - build: reduced amount of warnings in various build environments 186 - encoder: faster compression 187 - encoder: lower memory usage 188 189 190## [0.5.0] - 2016-06-15 191 192### Added 193 - common: library has been assembled from shared parts of decoder and encoder 194 - encoder: C API 195 196### Removed 197 - encoder: C++ API 198 199 200## [0.4.0] - 2016-06-14 201 202### Added 203 - encoder: faster compression modes (quality 0 and 1) 204 - decoder: `BrotliGetErrorCode`, `BrotliErrorString` and 205 `BROTLI_ERROR_CODES_LIST` 206 207### Removed 208 - decoder: deprecated streaming API (using `BrotliInput`) 209 210### Fixed 211 - decoder: possible pointer underflow 212 213### Improved 214 - encoder: faster compression 215 216 217## [0.3.0] - 2015-12-22 218 219### LICENSE 220License have been upgraded to more permissive MIT. 221 222### Added 223 - CLI: `--window` option 224 - `tools/version.h` file 225 - decoder: low level streaming API 226 - decoder: custom memory manager API 227 228### Deprecated 229 - decoder: streaming API using `BrotliInput` struct 230 231### Fixed 232 - decoder: processing of uncompressed blocks 233 - encoder: possible division by zero 234 235### Improved 236 - encoder: faster decompression 237 - build: more portable builds for various CPU architectures 238 239 240## [0.2.0] - 2015-09-01 241 242### Added 243 - CLI: `--verbose` and `--repeat` options 244 245### Fixed 246 - decoder: processing of uncompressed blocks 247 - encoder: block stitching on quality 10 / 11 248 249### Improved 250 - build: CI/CD integration 251 - build: better test coverage 252 - encoder: better compression of UTF-8 content 253 - encoder: faster decompression 254 255 256## [0.1.0] - 2015-08-11 257 258Initial release. 259