From c82f4e50d29e42ab3fdf6962e40b9acccdd7c6a3 Mon Sep 17 00:00:00 2001 From: vffuunnyy Date: Sat, 16 Aug 2025 01:56:56 +0700 Subject: [PATCH] feat: add compression support and fix tun config overwrite issue --- src-tauri/Cargo.lock | 17 +++++++++++++++++ src-tauri/Cargo.toml | 2 +- src-tauri/src/enhance/mod.rs | 4 +++- 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 9c8ecb9d..d7a504be 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -256,6 +256,22 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "async-compression" +version = "0.4.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddb939d66e4ae03cee6091612804ba446b12878410cfa17f785f4dd67d4014e8" +dependencies = [ + "brotli", + "flate2", + "futures-core", + "memchr", + "pin-project-lite", + "tokio", + "zstd", + "zstd-safe", +] + [[package]] name = "async-executor" version = "1.13.2" @@ -5853,6 +5869,7 @@ version = "0.12.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eabf4c97d9130e2bf606614eb937e86edac8292eaa6f422f995d7e8de1eb1813" dependencies = [ + "async-compression", "base64 0.22.1", "bytes", "cookie", diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 43910d84..c1dbbd37 100755 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -45,7 +45,7 @@ tokio = { version = "1.45.1", features = [ "sync", ] } serde = { version = "1.0.219", features = ["derive"] } -reqwest = { version = "0.12.20", features = ["json", "rustls-tls", "cookies"] } +reqwest = { version = "0.12.20", features = ["json", "rustls-tls", "cookies", "brotli", "gzip", "zstd"] } regex = "1.11.1" sysproxy = { git = "https://github.com/clash-verge-rev/sysproxy-rs" } image = "0.25.6" diff --git a/src-tauri/src/enhance/mod.rs b/src-tauri/src/enhance/mod.rs index 000440c1..196f8f9d 100644 --- a/src-tauri/src/enhance/mod.rs +++ b/src-tauri/src/enhance/mod.rs @@ -202,7 +202,9 @@ pub async fn enhance() -> (Mapping, Vec, HashMap) { }); let patch_tun = value.as_mapping().cloned().unwrap_or(Mapping::new()); for (key, value) in patch_tun.into_iter() { - tun.insert(key, value); + if !tun.contains_key(&key) { + tun.insert(key, value); + } } config.insert("tun".into(), tun.into()); } else {