Skip to content

Commit 8b48b0c

Browse files
committed
Merge #386: Added tower-http compression as middleware on both HTTP routers
22bb98a #326: Use only compression features of tower-http (Alex Wellnitz) 76b270b #326: Add tower-http compression as middleware (Alex Wellnitz) Pull request description: Modified: I have added tower-http compression as middleware on both HTTP routers(API, Tracker HTTP). All tests were run and were okay. ACKs for top commit: josecelano: ACK 22bb98a Tree-SHA512: 0513f81731d8e0f57e3f26039f727dae01a41ecacd01cabd0b77ee5644e680302e59da762b932afda59ba6a4a7b40c31baf580082031e1a893f09128425055f3
2 parents d36d655 + 22bb98a commit 8b48b0c

4 files changed

Lines changed: 130 additions & 4 deletions

File tree

Cargo.lock

Lines changed: 120 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ uuid = { version = "1", features = ["v4"] }
4141
axum = "0.6.20"
4242
axum-server = { version = "0.5", features = ["tls-rustls"] }
4343
axum-client-ip = "0.4.1"
44+
tower-http = { version= "0.4.3", features = ["compression-full"] }
4445
bencode = { version = "1.0.0-alpha.1", path = "contrib/bencode" }
4546
torrust-tracker-primitives = { version = "3.0.0-alpha.3", path = "packages/primitives" }
4647
torrust-tracker-configuration = { version = "3.0.0-alpha.3", path = "packages/configuration" }

src/servers/apis/routes.rs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
use std::sync::Arc;
99

1010
use axum::{middleware, Router};
11+
use tower_http::compression::CompressionLayer;
1112

1213
use super::v1;
1314
use crate::tracker::Tracker;
@@ -21,8 +22,10 @@ pub fn router(tracker: Arc<Tracker>) -> Router {
2122

2223
let router = v1::routes::add(prefix, router, tracker.clone());
2324

24-
router.layer(middleware::from_fn_with_state(
25-
tracker.config.clone(),
26-
v1::middlewares::auth::auth,
27-
))
25+
router
26+
.layer(middleware::from_fn_with_state(
27+
tracker.config.clone(),
28+
v1::middlewares::auth::auth,
29+
))
30+
.layer(CompressionLayer::new())
2831
}

src/servers/http/v1/routes.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ use std::sync::Arc;
44
use axum::routing::get;
55
use axum::Router;
66
use axum_client_ip::SecureClientIpSource;
7+
use tower_http::compression::CompressionLayer;
78

89
use super::handlers::{announce, scrape};
910
use crate::tracker::Tracker;
@@ -23,4 +24,5 @@ pub fn router(tracker: Arc<Tracker>) -> Router {
2324
.route("/scrape/:key", get(scrape::handle_with_key).with_state(tracker))
2425
// Add extension to get the client IP from the connection info
2526
.layer(SecureClientIpSource::ConnectInfo.into_extension())
27+
.layer(CompressionLayer::new())
2628
}

0 commit comments

Comments
 (0)