From 94765cf58c0228f9a2460674c188c7eec4666248 Mon Sep 17 00:00:00 2001 From: Dean Li Date: Sat, 1 May 2021 20:33:53 +0800 Subject: Compress response using `actix_web::middleware::compress` --- src/main.rs | 1 + 1 file changed, 1 insertion(+) (limited to 'src') diff --git a/src/main.rs b/src/main.rs index 6bbebd7..cdded78 100644 --- a/src/main.rs +++ b/src/main.rs @@ -202,6 +202,7 @@ async fn run(miniserve_config: MiniserveConfig) -> Result<(), ContextualError> { .app_data(stylesheet.clone()) .wrap_fn(errors::error_page_middleware) .wrap(middleware::Logger::default()) + .wrap(middleware::Compress::default()) .route(&inside_config.favicon_route, web::get().to(favicon)) .route(&inside_config.css_route, web::get().to(css)) .service( -- cgit v1.2.3 From b5e2d58f5e0a32e773e6b6b94624c8e3863179b5 Mon Sep 17 00:00:00 2001 From: zuisong Date: Sun, 14 Jan 2024 22:55:24 +0800 Subject: Add option for compress response --- src/args.rs | 12 ++++++++++++ src/config.rs | 4 ++++ src/main.rs | 5 ++++- 3 files changed, 20 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/args.rs b/src/args.rs index cc8b0f1..25f2915 100644 --- a/src/args.rs +++ b/src/args.rs @@ -214,6 +214,18 @@ pub struct CliArgs { #[arg(short = 'z', long = "enable-zip", env = "MINISERVE_ENABLE_ZIP")] pub enable_zip: bool, + /// Enable compress response + /// + /// WARNING: Enabling this option may slow down transfers due to CPU overhead, so it is disabled by default. + /// + /// Only enable this option if you know that your users have slow connections or if you want to minimize your server's bandwidth usage. + #[arg( + short = 'C', + long = "compress-response", + env = "MINISERVE_COMPRESS_RESPONSE" + )] + pub compress_response: bool, + /// List directories first #[arg(short = 'D', long = "dirs-first", env = "MINISERVE_DIRS_FIRST")] pub dirs_first: bool, diff --git a/src/config.rs b/src/config.rs index bfe916b..6e4a1eb 100644 --- a/src/config.rs +++ b/src/config.rs @@ -119,6 +119,9 @@ pub struct MiniserveConfig { /// If false, creation of zip archives is disabled pub zip_enabled: bool, + /// Enable compress response + pub compress_response: bool, + /// If enabled, directories are listed first pub dirs_first: bool, @@ -309,6 +312,7 @@ impl MiniserveConfig { show_wget_footer: args.show_wget_footer, readme: args.readme, tls_rustls_config: tls_rustls_server_config, + compress_response: args.compress_response, }) } } diff --git a/src/main.rs b/src/main.rs index cdded78..ce21260 100644 --- a/src/main.rs +++ b/src/main.rs @@ -202,7 +202,10 @@ async fn run(miniserve_config: MiniserveConfig) -> Result<(), ContextualError> { .app_data(stylesheet.clone()) .wrap_fn(errors::error_page_middleware) .wrap(middleware::Logger::default()) - .wrap(middleware::Compress::default()) + .wrap(middleware::Condition::new( + miniserve_config.compress_response, + middleware::Compress::default(), + )) .route(&inside_config.favicon_route, web::get().to(favicon)) .route(&inside_config.css_route, web::get().to(css)) .service( -- cgit v1.2.3