pub struct CompressionBuilder(/* private fields */);plugins only.Expand description
Builder for configuring HTTP response compression settings.
CompressionBuilder provides a fluent API for constructing compression plugin
configurations. It allows selective enabling/disabling of compression algorithms,
setting compression levels, and configuring behavior options like streaming and
minimum response size thresholds.
§Examples
use tako::plugins::compression::CompressionBuilder;
// Basic setup with default settings
let basic = CompressionBuilder::new().build();
// Custom configuration
let custom = CompressionBuilder::new()
.enable_gzip(true)
.gzip_level(8)
.enable_brotli(true)
.brotli_level(6)
.enable_deflate(false)
.min_size(2048)
.enable_stream(true)
.build();Implementations§
Source§impl CompressionBuilder
impl CompressionBuilder
Sourcepub fn new() -> CompressionBuilder
pub fn new() -> CompressionBuilder
Creates a new compression configuration builder with default settings.
Sourcepub fn enable_gzip(self, yes: bool) -> CompressionBuilder
pub fn enable_gzip(self, yes: bool) -> CompressionBuilder
Enables or disables Gzip compression.
Sourcepub fn enable_brotli(self, yes: bool) -> CompressionBuilder
pub fn enable_brotli(self, yes: bool) -> CompressionBuilder
Enables or disables Brotli compression.
Sourcepub fn enable_deflate(self, yes: bool) -> CompressionBuilder
pub fn enable_deflate(self, yes: bool) -> CompressionBuilder
Enables or disables DEFLATE compression.
Sourcepub fn enable_zstd(self, yes: bool) -> CompressionBuilder
Available on crate feature zstd only.
pub fn enable_zstd(self, yes: bool) -> CompressionBuilder
zstd only.Enables or disables Zstandard compression (requires zstd feature).
Sourcepub fn enable_stream(self, stream: bool) -> CompressionBuilder
pub fn enable_stream(self, stream: bool) -> CompressionBuilder
Enables or disables streaming compression mode.
Sourcepub fn min_size(self, bytes: usize) -> CompressionBuilder
pub fn min_size(self, bytes: usize) -> CompressionBuilder
Sets the minimum response size threshold for compression.
Sourcepub fn content_types(self, policy: ContentTypePolicy) -> CompressionBuilder
pub fn content_types(self, policy: ContentTypePolicy) -> CompressionBuilder
Replaces the content-type matching policy.
Sourcepub fn gzip_level(self, lvl: u32) -> CompressionBuilder
pub fn gzip_level(self, lvl: u32) -> CompressionBuilder
Sets the Gzip compression level (1-9).
Sourcepub fn brotli_level(self, lvl: u32) -> CompressionBuilder
pub fn brotli_level(self, lvl: u32) -> CompressionBuilder
Sets the Brotli compression level (1-11).
Sourcepub fn deflate_level(self, lvl: u32) -> CompressionBuilder
pub fn deflate_level(self, lvl: u32) -> CompressionBuilder
Sets the DEFLATE compression level (1-9).
Sourcepub fn zstd_level(self, lvl: i32) -> CompressionBuilder
Available on crate feature zstd only.
pub fn zstd_level(self, lvl: i32) -> CompressionBuilder
zstd only.Sets the Zstandard compression level (1-22, requires zstd feature).
Sourcepub fn protect_sensitive(self, on: bool) -> CompressionBuilder
pub fn protect_sensitive(self, on: bool) -> CompressionBuilder
Toggle the CRIME/BREACH mitigation. Default is true: responses
containing Set-Cookie, or whose request carried Authorization,
Proxy-Authorization, or Cookie, are sent uncompressed. Setting this
to false re-enables compression unconditionally — only do so if you
have an alternative mitigation (per-response padding, rotated tokens).
Sourcepub fn build(self) -> CompressionPlugin
pub fn build(self) -> CompressionPlugin
Builds the compression plugin with the configured settings.
Trait Implementations§
Source§impl Default for CompressionBuilder
impl Default for CompressionBuilder
Source§fn default() -> CompressionBuilder
fn default() -> CompressionBuilder
Auto Trait Implementations§
impl !RefUnwindSafe for CompressionBuilder
impl !UnwindSafe for CompressionBuilder
impl Freeze for CompressionBuilder
impl Send for CompressionBuilder
impl Sync for CompressionBuilder
impl Unpin for CompressionBuilder
impl UnsafeUnpin for CompressionBuilder
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more