From ad1bf802636c45c2315401121d486df7e7e95bc3 Mon Sep 17 00:00:00 2001 From: Ryan Fowler Date: Mon, 11 Aug 2025 18:37:15 -0700 Subject: [PATCH] Cap the zstd window size for better browser support --- src/encode.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/encode.rs b/src/encode.rs index 1cc5267..e2ae720 100644 --- a/src/encode.rs +++ b/src/encode.rs @@ -2,12 +2,12 @@ use std::fs::File; use std::io::{Read, Result, Write}; use brotli::{ - enc::{BrotliEncoderParams, StandardAlloc}, BrotliCompressCustomAlloc, + enc::{BrotliEncoderParams, StandardAlloc}, }; use flate2::{ - write::{DeflateEncoder, GzEncoder}, Compression, + write::{DeflateEncoder, GzEncoder}, }; use zstd::Encoder; @@ -96,6 +96,9 @@ impl Context { pub(crate) fn write_zstd(&mut self, input: &mut File, output: &mut File) -> Result<()> { let mut enc = Encoder::new(output, self.zstd_quality)?; + // Cap the HTTP window at 8 MiB (2^23) for browser support. + enc.window_log(23)?; + enc.long_distance_matching(false)?; loop { let n = input.read(&mut self.read_buf)?; if n == 0 {