• v1.2.0 028fb5a236

    Stable

    claunia released this 2025-10-27 13:07:48 +00:00 | 32 commits to master since this release

    📅 Originally published on GitHub: Mon, 27 Oct 2025 16:03:32 GMT
    🏷️ Git tag created: Mon, 27 Oct 2025 13:07:48 GMT

    SECURITY

    • python: added Decompressor::can_accept_more_data method and optional
      output_buffer_limit argument Decompressor::process;
      that allows mitigation of unexpectedly large output;
      reported by Charles Chan (https://github.com/charleswhchan)

    Added

    • decoder / encoder: added static initialization to reduce binary size
    • python: allow limiting decoder output (see SECURITY section)
    • CLI: brcat alias; allow decoding concatenated brotli streams
    • kt: pure Kotlin decoder
    • cgo: support "raw" dictionaries
    • build: Bazel modules

    Removed

    • java: dropped finalize() for native entities

    Fixed

    • java: in compress pass correct length to native encoder

    Improved

    • build: install man pages
    • build: updated / fixed / refined Bazel buildfiles
    • encoder: faster encoding
    • cgo: link via pkg-config
    • python: modernize extension / allow multi-phase module initialization

    Changed

    • decoder / encoder: static tables use "small" model (allows 2GiB+ binaries)
    Downloads
  • Pre-Release

    claunia released this 2025-10-21 12:37:07 +00:00 | 35 commits to master since this release

    📅 Originally published on GitHub: Tue, 21 Oct 2025 13:23:03 GMT
    🏷️ Git tag created: Tue, 21 Oct 2025 12:37:07 GMT

    What's Changed (compared to RC1)

    Downloads
  • Pre-Release

    claunia released this 2025-10-21 12:37:07 +00:00 | 35 commits to master since this release

    📅 Originally published on GitHub: Tue, 21 Oct 2025 12:49:54 GMT
    🏷️ Git tag created: Tue, 21 Oct 2025 12:37:07 GMT

    This tag is used for debugging release workflow.

    Downloads
  • Pre-Release

    claunia released this 2025-10-06 12:16:07 +00:00 | 47 commits to master since this release

    📅 Originally published on GitHub: Mon, 06 Oct 2025 13:32:04 GMT
    🏷️ Git tag created: Mon, 06 Oct 2025 12:16:07 GMT

    IMPORTANT: though this is a pre-release for v1.2.0, it is expected that some changes will be added before release; most notably concerning build files: patches applied by Alpine, Debian, Conan, VCPKG will be partially/fully integrated.

    SECURITY

    • python: added Decompressor::can_accept_more_data method and optional
      output_buffer_limit argument Decompressor::process;
      that allows mitigation of unexpectedly large output;
      reported by Charles Chan (https://github.com/charleswhchan)

    Added

    • decoder / encoder: added static initialization to reduce binary size
    • python: allow limiting decoder output (see SECURITY section)
    • CLI: brcat alias; allow decoding concatenated brotli streams
    • kt: pure Kotlin decoder
    • cgo: support "raw" dictionaries
    • build: Bazel modules

    Removed

    • java: dropped finalize() for native entities

    Fixed

    • java: in compress pass correct length to native encoder

    Improved

    • build: install man pages
    • build: updated / fixed / refined Bazel buildfiles
    • encoder: faster encoding
    • cgo: link via pkg-config
    • python: modernize extension / allow multi-phase module initialization

    Changed

    • decoder / encoder: static tables use "small" model (allows 2GiB+ binaries)
    Downloads
  • v1.1.0 ed738e842d

    Stable

    claunia released this 2023-08-29 11:00:29 +00:00 | 295 commits to master since this release

    📅 Originally published on GitHub: Thu, 31 Aug 2023 08:21:23 GMT
    🏷️ Git tag created: Tue, 29 Aug 2023 11:00:29 GMT

    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
    Downloads
  • Pre-Release

    claunia released this 2023-08-21 13:36:24 +00:00 | 298 commits to master since this release

    📅 Originally published on GitHub: Mon, 21 Aug 2023 13:52:58 GMT
    🏷️ Git tag created: Mon, 21 Aug 2023 13:36:24 GMT

    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
    Downloads
  • v1.0.9 e61745a6b7

    Stable

    claunia released this 2020-08-27 14:12:55 +00:00 | 420 commits to master since this release

    📅 Originally published on GitHub: Thu, 27 Aug 2020 14:14:11 GMT
    🏷️ Git tag created: Thu, 27 Aug 2020 14:12:55 GMT

    SECURITY: decoder: fix integer overflow when input chunk is larger than 2GiB (CVE-2020-8927)

    Other changes:

    • add support WASM (emscripten) build
    • brotli -v now reports raw / compressed size
    • build files / docs maintenance
    • reduce sources tarball size
    • decoder: minor speed / memory usage improvements
    • encoder: fix rare access to uninitialized data in ring-buffer
    • encoder: improve support for platforms that does not have log2
    • encoder: better support for MSVC (replacement for __builtin_clz and __builtin_ctzll
    • python: decompress now reports error if there is unused after the end of compressed input
    Downloads
  • v1.0.8 db361a0bb9

    Stable

    claunia released this 2020-08-27 14:01:44 +00:00 | 421 commits to master since this release

    📅 Originally published on GitHub: Thu, 27 Aug 2020 14:05:02 GMT
    🏷️ Git tag created: Thu, 27 Aug 2020 14:01:44 GMT

    SECURITY: decoder: fix integer overflow when input chunk is larger than 2GiB (CVE-2020-8927)

    Other changes:

    • add support WASM (emscripten) build
    • brotli -v now reports raw / compressed size
    • build files / docs maintenance
    • reduce sources tarball size
    • decoder: minor speed / memory usage improvements
    • encoder: fix rare access to uninitialized data in ring-buffer
    • encoder: improve support for platforms that does not have log2
    • encoder: better support for MSVC (replacement for __builtin_clz and __builtin_ctzll
    • python: decompress now reports error if there is unused after the end of compressed input
    Downloads
  • v1.0.7 d6d98957ca

    Stable

    claunia released this 2018-10-23 10:24:40 +00:00 | 457 commits to master since this release

    📅 Originally published on GitHub: Tue, 23 Oct 2018 11:13:37 GMT
    🏷️ Git tag created: Tue, 23 Oct 2018 10:24:40 GMT

    • cross compilation support:
      • added ability to run cross-compiled ARM tests in qemu
      • added arm-linux-gnueabihf-gcc entry to Travis build matrix
    • faster decoding on ARM:
      • implemented prefetching HuffmanCode entry as uint32_t if target platform is ARM
      • fixed NEON extension detection
      • combed Huffman table building code for better readability
    • improved precision of window size calculation in CLI
    • minor fixes:
      • fixed typos
      • improved internal comments / parameter names
      • fixed BROTLI_PREDICT_TRUE/_FALSE detection for SunPro compiler
      • unburdened JNI (Bazel) builds from fetching the full JDK
    Downloads
  • v1.0.6 6eba239a5b

    Stable

    claunia released this 2018-09-13 17:31:23 +00:00 | 467 commits to master since this release

    📅 Originally published on GitHub: Wed, 19 Sep 2018 12:36:26 GMT
    🏷️ Git tag created: Thu, 13 Sep 2018 17:31:23 GMT

    No API / ABI changes.

    Fixes

    • fix unaligned 64-bit accesses on AArch32
    • add missing files to the sources list
    • add ASAN/MSAN unaligned read specializations
    • fix CoverityScan "unused assignment" warning
    • fix JDK 8<->9 incompatibility
    • unbreak Travis builds
    • fix auto detect of bundled mode in cmake
    Downloads