Compare commits

..

1 Commits

Author SHA1 Message Date
Nick Rolfe
72adc430ed Ruby: compress TRAP using Brotli 2022-01-27 18:40:58 +00:00
3 changed files with 16 additions and 4 deletions

BIN
ruby/Cargo.lock generated

Binary file not shown.

View File

@@ -18,4 +18,5 @@ tracing-subscriber = { version = "0.3.3", features = ["env-filter"] }
rayon = "1.5.0"
num_cpus = "1.13.0"
regex = "1.4.3"
indexmap = "1.7.0"
indexmap = "1.7.0"
brotli = "3.3.3"

View File

@@ -95,6 +95,14 @@ impl Writer {
let mut compressed_writer = GzEncoder::new(trap_file, flate2::Compression::fast());
self.write(&mut compressed_writer)
}
Compression::Brotli => {
let mut params = brotli::enc::BrotliEncoderParams::default();
params.quality = 3;
let params = params;
let mut compressed_writer =
brotli::CompressorWriter::with_params(trap_file, 4096, &params);
self.write(&mut compressed_writer)
}
}
}
}
@@ -193,6 +201,7 @@ fn limit_string(string: &str, max_size: usize) -> &str {
pub enum Compression {
None,
Gzip,
Brotli,
}
impl Compression {
@@ -201,12 +210,12 @@ impl Compression {
Ok(method) => match Compression::from_string(&method) {
Some(c) => c,
None => {
tracing::error!("Unknown compression method '{}'; using gzip.", &method);
Compression::Gzip
tracing::error!("Unknown compression method '{}'; using Brotli.", &method);
Compression::Brotli
}
},
// Default compression method if the env var isn't set:
Err(_) => Compression::Gzip,
Err(_) => Compression::Brotli,
}
}
@@ -214,6 +223,7 @@ impl Compression {
match s.to_lowercase().as_ref() {
"none" => Some(Compression::None),
"gzip" => Some(Compression::Gzip),
"brotli" => Some(Compression::Brotli),
_ => None,
}
}
@@ -222,6 +232,7 @@ impl Compression {
match self {
Compression::None => "trap",
Compression::Gzip => "trap.gz",
Compression::Brotli => "trap.br",
}
}
}