Repository navigation
Releases: M-Compressors/ngx_mbrotli
Releases · M-Compressors/ngx_mbrotli
Release list
v0.4.5
Patch changes
- 6865dba Prebuilt deb and rpm packages for amd64 and arm64 on Cloudsmith:
nginx-module-mbrotlifor nginx.org's stable and mainline nginx, on every distribution release nginx.org packages for, andlibnginx-mod-http-mbrotliandnginx-mod-mbrotlifor 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
Patch changes
- Update mbrotli with a new perf optiomizations
v0.4.3
Patch changes
- 78ecdf3 Update mbrotli to 0.5.15. With
brotli_thread_pool, a response longer thanbrotli_parallel_segment_sizenow 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. Atbrotli_comp_level 6with 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
Patch changes
- ce2ed65 Choose zstd over Brotli when NGINX also has zstd-nginx-module and the client accepts both encodings.
load_moduleused to appendngx_http_brotli_static_moduleto the end of the module list, so a.brfile was served even when a.zstfile 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
v0.4.0
Minor changes
- e2a96d5 Add
brotli_thread_pool <name> | off(defaultoff) to compress responses on an NGINX thread pool instead of in the worker's event loop, withbrotli_parallel_segment_size(default1m) andbrotli_parallel_tasks(default4) 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>(default4,httpcontext): withbrotli_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. Addbrotli_idle_encoders <number>(default4,httpcontext) to set how many idle encoders each worker keeps, which was fixed at 4. — Thanks @Mnwa!
v0.3.0
Minor changes
- 1dd6380 Compress uncompressed TrueType and OpenType fonts (
font/ttf,font/otf,application/vnd.ms-fontobjectand 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_policynow defaults toaggressive: an idle encoder keeps all of its working memory, so a worker allocates only what its largest responses grew into. Setbrotli_retention_policy bounded 8mfor the previous default. — Thanks @Mnwa!
Patch changes
v0.2.0
Minor changes
- a6a6bc8 Add
brotli_reuse_memory on|off(defaulton) to reuse encoders between responses in each worker, andbrotli_retention_policy aggressive | current_config | release_all | bounded <size>(defaultbounded 8m) to choose how much working memory an idle encoder keeps. — Thanks @Mnwa!
Patch changes
v0.1.0
Minor changes
- fec5f38 Initial release:
ngx_http_brotli_filter_moduleandngx_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_ratiovariable. — Thanks @Mnwa!