Skip to content

Releases: M-Compressors/ngx_mbrotli

v0.4.5

Choose a tag to compare

@github-actions github-actions released this 20 Oct 20:55
711807e

Patch changes

  • 6865dba Prebuilt deb and rpm packages for amd64 and arm64 on Cloudsmith: nginx-module-mbrotli for nginx.org's stable and mainline nginx, on every distribution release nginx.org packages for, and libnginx-mod-http-mbrotli and nginx-mod-mbrotli for the nginx of Debian, Ubuntu, RHEL-compatible distributions and Fedora, from 1.25.4 on. See "Installation from packages" in the README. — Thanks @Mnwa!

v0.4.4

Choose a tag to compare

@github-actions github-actions released this 18 Oct 16:37
2678efe

Patch changes

  • Update mbrotli with a new perf optiomizations

v0.4.3

Choose a tag to compare

@github-actions github-actions released this 14 Oct 20:54
6903f59

Patch changes

  • 78ecdf3 Update mbrotli to 0.5.15. With brotli_thread_pool, a response longer than brotli_parallel_segment_size now compresses about as well as without a pool: segments after the first no longer write every copy distance in full, and each may copy from the quarter segment of the response before it. At brotli_comp_level 6 with the default 512k window and 1m segments, 8 MB of repetitive text is 430,507 bytes instead of 2.8 MB (430,026 without a pool), and 8 MB of WebAssembly 1,756,368 instead of 2,001,714 (1,750,366). Responses that fit in one segment are unchanged. — Thanks @Mnwa!

v0.4.2

Choose a tag to compare

@github-actions github-actions released this 14 Oct 15:28
76d124e

Patch changes

  • ce2ed65 Choose zstd over Brotli when NGINX also has zstd-nginx-module and the client accepts both encodings. load_module used to append ngx_http_brotli_static_module to the end of the module list, so a .br file was served even when a .zst file was there too, unlike a static build with ngx_brotli added before zstd-nginx-module. Both modules are now ordered before their zstd counterparts, for pre-compressed files and for compression on the fly. — Thanks @Mnwa!

v0.4.1

Choose a tag to compare

@github-actions github-actions released this 13 Oct 15:40
7c4b621

Patch changes

  • eed3503 Update mbrotli to 0.5.11. With brotli_thread_pool, the encoder now writes straight into uninitialized output buffers, as it already did without a thread pool, so each new brotli_buffers buffer is no longer zeroed first. Output is unchanged. — Thanks @Mnwa!

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 12 Oct 19:15
cc226ca

Minor changes

  • e2a96d5 Add brotli_thread_pool <name> | off (default off) to compress responses on an NGINX thread pool instead of in the worker's event loop, with brotli_parallel_segment_size (default 1m) and brotli_parallel_tasks (default 4) to cut longer responses into segments that are compressed in parallel. Requires NGINX built with --with-threads. Update mbrotli to 0.5.10. — Thanks @Mnwa!
  • 8f7508a Add brotli_parallel_compressors <number> (default 4, http context): with brotli_thread_pool, a worker keeps segment encoders for at most that many compressors, idle or held by responses. A response holds its compressor while its segments wait for a thread, so before this every response in flight could hold the encoders a previous one grew, and a worker's memory grew with the number of connections. Requires NGINX built with --with-threads. Add brotli_idle_encoders <number> (default 4, http context) to set how many idle encoders each worker keeps, which was fixed at 4. — Thanks @Mnwa!

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 12 Oct 07:56
7553dbe

Minor changes

  • 1dd6380 Compress uncompressed TrueType and OpenType fonts (font/ttf, font/otf, application/vnd.ms-fontobject and similar types) in Brotli's font mode, which makes them about 0.1–0.3% smaller. Other responses, including WOFF and WOFF2 fonts, are still compressed in generic mode. — Thanks @Mnwa!
  • 60afc80 brotli_retention_policy now defaults to aggressive: an idle encoder keeps all of its working memory, so a worker allocates only what its largest responses grew into. Set brotli_retention_policy bounded 8m for the previous default. — Thanks @Mnwa!

Patch changes

  • 60afc80 Update mbrotli to 0.5.9, which makes brotli_comp_level 4 1–2% faster on 2 KB–1 MB responses. Output is unchanged. — Thanks @Mnwa!

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 10 Oct 11:06
5874529

Minor changes

  • a6a6bc8 Add brotli_reuse_memory on|off (default on) to reuse encoders between responses in each worker, and brotli_retention_policy aggressive | current_config | release_all | bounded <size> (default bounded 8m) to choose how much working memory an idle encoder keeps. — Thanks @Mnwa!

Patch changes

  • 19958bc Fix an out-of-bounds read in brotli_static: the name of the .br file was given a length past its end, so logging it could read beyond the allocation. — Thanks @Mnwa!
  • 7723049 Update mbrotli to 0.5.7 and strip symbols from the release build for a smaller module binary. — Thanks @Mnwa!

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 10 Oct 10:00
0450da0

Minor changes

  • fec5f38 Initial release: ngx_http_brotli_filter_module and ngx_http_brotli_static_module, a drop-in replacement for google/ngx_brotli built on ngx-rust and the pure-Rust mbrotli encoder. Supports every ngx_brotli directive (brotli, brotli_types, brotli_buffers, brotli_comp_level, brotli_window, brotli_min_length, brotli_static) and the $brotli_ratio variable. — Thanks @Mnwa!