mirror of
https://github.com/clash-verge-rev/clash-verge-rev.git
synced 2026-11-09 03:42:06 +08:00
* feat: Implement DNS management for macOS
- Added `set_public_dns` and `restore_public_dns` functions in `dns.rs` to manage system DNS settings.
- Introduced `resolve` module to encapsulate DNS and scheme resolution functionalities.
- Implemented `resolve_scheme` function in `scheme.rs` to handle deep links and profile imports.
- Created UI readiness management in `ui.rs` to track and update UI loading states.
- Developed window management logic in `window.rs` to handle window creation and visibility.
- Added initial loading overlay script in `window_script.rs` for better user experience during startup.
- Updated server handling in `server.rs` to integrate new resolve functionalities.
- Refactored window creation calls in `window_manager.rs` to use the new window management logic.
* refactor: streamline asynchronous handling in config and resolve setup
* Revert "refactor: streamline asynchronous handling in config and resolve setup"
This reverts commit 23d7dc86d5.
* fix: optimize asynchronous memory handling
* fix: enhance task logging by adding size check for special cases
* refactor: enhance async initialization and streamline setup process
* refactor: optimize async setup by consolidating initialization tasks
* chore: update changelog for Mihomo(Meta) kernel upgrade to v1.19.13
* fix: improve startup phase initialization performance
* refactor: optimize file read/write performance to reduce application wait time
* refactor: simplify app instance exit logic and adjust system proxy guard initialization
* refactor: change resolve_setup_async to synchronous execution for improved performance
* refactor: update resolve_setup_async to accept AppHandle for improved initialization flow
* refactor: remove unnecessary initialization of portable flag in run function
* refactor: consolidate async initialization tasks into a single blocking call for improved execution flow
* refactor: optimize resolve_setup_async by restructuring async tasks for improved concurrency
* refactor: streamline resolve_setup_async and embed_server for improved async handling
* refactor: separate synchronous and asynchronous setup functions for improved clarity
* refactor: simplify async notification handling and remove redundant network manager initialization
* refactor: enhance async handling in proxy request cache and window creation logic
* refactor: improve code formatting and readability in ProxyRequestCache
* refactor: adjust singleton check timeout and optimize trace size conditions
* refactor: update TRACE_SPECIAL_SIZE to include additional size condition
* refactor: update kode-bridge dependency to version 0.2.1-rc2
* refactor: replace RwLock with AtomicBool for UI readiness and implement event-driven monitoring
* refactor: convert async functions to synchronous for window management
* Update src-tauri/src/utils/resolve/window.rs
* fix: handle missing app_handle in create_window function
* Update src-tauri/src/module/lightweight.rs
195 lines
5.3 KiB
TOML
Executable File
195 lines
5.3 KiB
TOML
Executable File
[package]
|
|
name = "clash-verge"
|
|
version = "2.4.1"
|
|
description = "clash verge"
|
|
authors = ["zzzgydi", "Tunglies", "wonfen", "MystiPanda"]
|
|
license = "GPL-3.0-only"
|
|
repository = "https://github.com/clash-verge-rev/clash-verge-rev.git"
|
|
default-run = "clash-verge"
|
|
edition = "2021"
|
|
build = "build.rs"
|
|
|
|
[package.metadata.bundle]
|
|
identifier = "io.github.clash-verge-rev.clash-verge-rev"
|
|
|
|
[build-dependencies]
|
|
tauri-build = { version = "2.4.0", features = [] }
|
|
|
|
[dependencies]
|
|
warp = { version = "0.4.2", features = ["server"] }
|
|
anyhow = "1.0.99"
|
|
dirs = "6.0"
|
|
open = "5.3.2"
|
|
log = "0.4.27"
|
|
dunce = "1.0.5"
|
|
log4rs = "1.3.0"
|
|
nanoid = "0.4"
|
|
chrono = "0.4.41"
|
|
sysinfo = { version = "=0.35.2", features = ["network", "system"] }
|
|
boa_engine = "0.20.0"
|
|
serde_json = "1.0.143"
|
|
serde_yaml = "0.9.34"
|
|
once_cell = "1.21.3"
|
|
port_scanner = "0.1.5"
|
|
delay_timer = "0.11.6"
|
|
parking_lot = "0.12.4"
|
|
percent-encoding = "2.3.2"
|
|
tokio = { version = "1.47.1", features = [
|
|
"rt-multi-thread",
|
|
"macros",
|
|
"time",
|
|
"sync",
|
|
] }
|
|
serde = { version = "1.0.219", features = ["derive"] }
|
|
reqwest = { version = "0.12.23", features = ["json", "rustls-tls", "cookies"] }
|
|
regex = "1.11.2"
|
|
sysproxy = { git = "https://github.com/clash-verge-rev/sysproxy-rs" }
|
|
tauri = { version = "2.8.4", features = [
|
|
"protocol-asset",
|
|
"devtools",
|
|
"tray-icon",
|
|
"image-ico",
|
|
"image-png",
|
|
] }
|
|
network-interface = { version = "2.0.3", features = ["serde"] }
|
|
tauri-plugin-shell = "2.3.1"
|
|
tauri-plugin-dialog = "2.3.3"
|
|
tauri-plugin-fs = "2.4.2"
|
|
tauri-plugin-process = "2.3.0"
|
|
tauri-plugin-clipboard-manager = "2.3.0"
|
|
tauri-plugin-deep-link = "2.4.2"
|
|
tauri-plugin-devtools = "2.0.1"
|
|
tauri-plugin-window-state = "2.4.0"
|
|
zip = "=4.2.0"
|
|
reqwest_dav = "0.2.1"
|
|
aes-gcm = { version = "0.10.3", features = ["std"] }
|
|
base64 = "0.22.1"
|
|
getrandom = "0.3.3"
|
|
futures = "0.3.31"
|
|
sys-locale = "0.3.2"
|
|
libc = "0.2.175"
|
|
gethostname = "1.0.2"
|
|
hmac = "0.12.1"
|
|
sha2 = "0.10.9"
|
|
hex = "0.4.3"
|
|
scopeguard = "1.2.0"
|
|
kode-bridge = "0.2.1-rc2"
|
|
dashmap = "6.1.0"
|
|
tauri-plugin-notification = "2.3.1"
|
|
console-subscriber = { version = "0.4.1", optional = true }
|
|
tokio-stream = "0.1.17"
|
|
isahc = { version = "1.7.2", features = ["parking_lot"] }
|
|
|
|
[target.'cfg(windows)'.dependencies]
|
|
runas = "=1.2.0"
|
|
deelevate = "0.2.0"
|
|
winreg = "0.55.0"
|
|
winapi = { version = "0.3.9", features = [
|
|
"winbase",
|
|
"fileapi",
|
|
"winnt",
|
|
"handleapi",
|
|
"errhandlingapi",
|
|
"minwindef",
|
|
"winerror",
|
|
"tlhelp32",
|
|
"processthreadsapi",
|
|
"winhttp",
|
|
"winreg",
|
|
] }
|
|
|
|
[target.'cfg(target_os = "linux")'.dependencies]
|
|
users = "0.11.0"
|
|
|
|
[target.'cfg(not(any(target_os = "android", target_os = "ios")))'.dependencies]
|
|
tauri-plugin-autostart = "2.5.0"
|
|
tauri-plugin-global-shortcut = "2.3.0"
|
|
tauri-plugin-updater = "2.9.0"
|
|
|
|
[features]
|
|
default = ["custom-protocol"]
|
|
custom-protocol = ["tauri/custom-protocol"]
|
|
verge-dev = []
|
|
tokio-trace = ["console-subscriber"]
|
|
|
|
[profile.release]
|
|
panic = "abort"
|
|
codegen-units = 1
|
|
lto = true
|
|
opt-level = "s"
|
|
strip = true
|
|
|
|
[profile.dev]
|
|
incremental = true
|
|
codegen-units = 256 # 增加编译单元,提升编译速度
|
|
opt-level = 0 # 禁用优化,进一步提升编译速度
|
|
debug = true # 保留调试信息
|
|
strip = false # 不剥离符号,保留调试信息
|
|
|
|
[profile.fast-release]
|
|
inherits = "release" # 继承 release 的配置
|
|
panic = "abort" # 与 release 相同
|
|
codegen-units = 256 # 增加编译单元,提升编译速度
|
|
lto = false # 禁用 LTO,提升编译速度
|
|
opt-level = 0 # 禁用优化,大幅提升编译速度
|
|
debug = true # 保留调试信息
|
|
strip = false # 不剥离符号,保留调试信息
|
|
|
|
[lib]
|
|
name = "app_lib"
|
|
crate-type = ["staticlib", "cdylib", "rlib"]
|
|
|
|
[dev-dependencies]
|
|
criterion = "0.7.0"
|
|
|
|
[lints.clippy]
|
|
# Core categories - most important for code safety and correctness
|
|
correctness = { level = "deny", priority = -1 }
|
|
suspicious = { level = "deny", priority = -1 }
|
|
|
|
# Critical safety lints - warn for now due to extensive existing usage
|
|
unwrap_used = "warn"
|
|
expect_used = "warn"
|
|
panic = "deny"
|
|
unimplemented = "deny"
|
|
|
|
# Development quality lints
|
|
todo = "warn"
|
|
dbg_macro = "warn"
|
|
#print_stdout = "warn"
|
|
#print_stderr = "warn"
|
|
|
|
# Performance lints for proxy application
|
|
clone_on_ref_ptr = "warn"
|
|
rc_clone_in_vec_init = "warn"
|
|
large_stack_arrays = "warn"
|
|
large_const_arrays = "warn"
|
|
|
|
# Security lints
|
|
#integer_division = "warn"
|
|
#lossy_float_literal = "warn"
|
|
#default_numeric_fallback = "warn"
|
|
|
|
# Mutex and async lints - strict control
|
|
async_yields_async = "deny" # Prevents missing await in async blocks
|
|
mutex_atomic = "deny" # Use atomics instead of Mutex<bool/int>
|
|
mutex_integer = "deny" # Use AtomicInt instead of Mutex<int>
|
|
rc_mutex = "deny" # Single-threaded Rc with Mutex is wrong
|
|
unused_async = "deny" # Too many false positives in Tauri/framework code
|
|
await_holding_lock = "deny"
|
|
large_futures = "deny"
|
|
future_not_send = "deny"
|
|
|
|
# Common style improvements
|
|
redundant_else = "deny" # Too many in existing code
|
|
needless_continue = "deny" # Too many in existing code
|
|
needless_raw_string_hashes = "deny" # Too many in existing code
|
|
|
|
# Disable noisy categories for existing codebase but keep them available
|
|
#style = { level = "allow", priority = -1 }
|
|
#complexity = { level = "allow", priority = -1 }
|
|
#perf = { level = "allow", priority = -1 }
|
|
#pedantic = { level = "allow", priority = -1 }
|
|
#nursery = { level = "allow", priority = -1 }
|
|
#restriction = { level = "allow", priority = -1 }
|