diff --git a/src/config.rs b/src/config.rs index f11d2711a72d32c7f60252b5ebed5dc1877521a3..8cd1edecb82d330b214f843c3cbf5e31967b787d 100644 --- a/src/config.rs +++ b/src/config.rs @@ -251,14 +251,8 @@ pub enum IndexStrategyConfig { pub enum CompressionConfig { /// Automatically select encoding based on encoding negotiation. Auto, - /// Use the Brotli algorithm. - Brotli, - /// Use a Zlib structure with the deflate algorithm. - Deflate, /// Don't use any compression. Disabled, - /// Use the Gzip algorithm. - Gzip, } impl From<IndexStrategyConfig> for IndexStrategy { diff --git a/src/server.rs b/src/server.rs index 98996b49116331f105af813b2e8c0a3f10fb8a31..00e9e9f28867f3e47a44ffe9d5ea67dafafddfdc 100644 --- a/src/server.rs +++ b/src/server.rs @@ -1,5 +1,5 @@ use crate::{ - config::ServerConfig, + config::{CompressionConfig, ServerConfig}, files::{path_context::PathContext, Files}, thread, thread::ThreadHandle, @@ -8,7 +8,7 @@ use actix_http::http::uri::InvalidUri; use actix_rt::Runtime; use actix_web::{ dev::ServerHandle, - middleware::{self, Logger}, + middleware::{self, Condition, Logger}, App, HttpServer, }; use snafu::{ResultExt, Snafu}; @@ -67,7 +67,12 @@ impl Server { let server_address = self.config.address; let serve_dir = Arc::clone(&self.serve_dir); let redirect_to_slash = self.config.redirect_to_slash; - let compression = self.config.compression.clone(); + + let enable_auto_compression = match self.config.compression { + Some(CompressionConfig::Auto) => true, + None => true, + _ => false, + }; let root_path_context = Arc::new(PathContext::try_from(&self.config).context(CreatePathContext)?); @@ -98,7 +103,10 @@ impl Server { App::new() .wrap(Logger::default()) - .wrap(middleware::Compress::default()) + .wrap(Condition::new( + enable_auto_compression, + middleware::Compress::default(), + )) .default_service(files_service) }) .bind(server_address)