236 lines
6.2 KiB
TOML
Executable File
236 lines
6.2 KiB
TOML
Executable File
[package]
|
|
name = "clash-verge"
|
|
version = "2.4.3"
|
|
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 = "2024"
|
|
build = "build.rs"
|
|
|
|
[package.metadata.bundle]
|
|
identifier = "io.github.clash-verge-rev.clash-verge-rev"
|
|
|
|
[build-dependencies]
|
|
tauri-build = { version = "2.5.1", features = [] }
|
|
|
|
[dependencies]
|
|
warp = { version = "0.4.2", features = ["server"] }
|
|
anyhow = "1.0.100"
|
|
open = "5.3.2"
|
|
log = "0.4.28"
|
|
dunce = "1.0.5"
|
|
nanoid = "0.4"
|
|
chrono = "0.4.42"
|
|
sysinfo = { version = "0.37.2", features = ["network", "system"] }
|
|
boa_engine = "0.21.0"
|
|
serde_json = "1.0.145"
|
|
serde_yaml_ng = "0.10.0"
|
|
once_cell = "1.21.3"
|
|
port_scanner = "0.1.5"
|
|
delay_timer = "0.11.6"
|
|
parking_lot = "0.12.5"
|
|
percent-encoding = "2.3.2"
|
|
tokio = { version = "1.48.0", features = [
|
|
"rt-multi-thread",
|
|
"macros",
|
|
"time",
|
|
"sync",
|
|
] }
|
|
serde = { version = "1.0.228", features = ["derive"] }
|
|
reqwest = { version = "0.12.24", features = ["json", "cookies"] }
|
|
regex = "1.12.2"
|
|
sysproxy = { git = "https://github.com/clash-verge-rev/sysproxy-rs" }
|
|
tauri = { version = "2.9.2", features = [
|
|
"protocol-asset",
|
|
"devtools",
|
|
"tray-icon",
|
|
"image-ico",
|
|
"image-png",
|
|
] }
|
|
network-interface = { version = "2.0.3", features = ["serde"] }
|
|
tauri-plugin-shell = "2.3.3"
|
|
tauri-plugin-dialog = "2.4.2"
|
|
tauri-plugin-fs = "2.4.4"
|
|
tauri-plugin-process = "2.3.1"
|
|
tauri-plugin-clipboard-manager = "2.3.2"
|
|
tauri-plugin-deep-link = "2.4.5"
|
|
tauri-plugin-window-state = "2.4.1"
|
|
zip = "6.0.0"
|
|
reqwest_dav = "0.2.2"
|
|
aes-gcm = { version = "0.10.3", features = ["std"] }
|
|
base64 = "0.22.1"
|
|
getrandom = "0.3.4"
|
|
futures = "0.3.31"
|
|
sys-locale = "0.3.2"
|
|
libc = "0.2.177"
|
|
gethostname = "1.1.0"
|
|
scopeguard = "1.2.0"
|
|
tauri-plugin-notification = "2.3.3"
|
|
tokio-stream = "0.1.17"
|
|
isahc = { version = "1.7.2", default-features = false, features = [
|
|
"text-decoding",
|
|
"parking_lot",
|
|
] }
|
|
backoff = { version = "0.4.0", features = ["tokio"] }
|
|
compact_str = { version = "0.9.0", features = ["serde"] }
|
|
tauri-plugin-http = "2.5.4"
|
|
flexi_logger = "0.31.7"
|
|
console-subscriber = { version = "0.5.0", optional = true }
|
|
tauri-plugin-devtools = { version = "2.0.1" }
|
|
tauri-plugin-mihomo = { git = "https://github.com/clash-verge-rev/tauri-plugin-mihomo" }
|
|
clash_verge_logger = { git = "https://github.com/clash-verge-rev/clash-verge-logger" }
|
|
async-trait = "0.1.89"
|
|
smartstring = { version = "1.0.1", features = ["serde"] }
|
|
clash_verge_service_ipc = { version = "2.0.21", features = [
|
|
"client",
|
|
], git = "https://github.com/clash-verge-rev/clash-verge-service-ipc" }
|
|
arc-swap = "1.7.1"
|
|
|
|
[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",
|
|
] }
|
|
windows-sys = { version = "0.61.2", features = [
|
|
"Win32_Foundation",
|
|
"Win32_Graphics_Gdi",
|
|
"Win32_System_SystemServices",
|
|
"Win32_UI_WindowsAndMessaging",
|
|
] }
|
|
|
|
[target.'cfg(target_os = "linux")'.dependencies]
|
|
users = "0.11.0"
|
|
|
|
[target.'cfg(unix)'.dependencies]
|
|
signal-hook = "0.3.18"
|
|
|
|
[target.'cfg(not(any(target_os = "android", target_os = "ios")))'.dependencies]
|
|
tauri-plugin-autostart = "2.5.1"
|
|
tauri-plugin-global-shortcut = "2.3.1"
|
|
tauri-plugin-updater = "2.9.0"
|
|
|
|
[features]
|
|
default = ["custom-protocol"]
|
|
custom-protocol = ["tauri/custom-protocol"]
|
|
verge-dev = ["clash_verge_logger/color"]
|
|
tauri-dev = []
|
|
tokio-trace = ["console-subscriber"]
|
|
clippy = ["tauri/test"]
|
|
tracing = []
|
|
|
|
[[bench]]
|
|
name = "draft_benchmark"
|
|
path = "benches/draft_benchmark.rs"
|
|
harness = false
|
|
|
|
[profile.release]
|
|
panic = "abort"
|
|
codegen-units = 1
|
|
lto = "thin"
|
|
opt-level = 3
|
|
debug = false
|
|
strip = true
|
|
overflow-checks = false
|
|
rpath = false
|
|
|
|
[profile.dev]
|
|
incremental = true
|
|
codegen-units = 64
|
|
opt-level = 0
|
|
debug = true
|
|
strip = "none"
|
|
overflow-checks = true
|
|
lto = false
|
|
rpath = false
|
|
|
|
[profile.fast-release]
|
|
inherits = "release"
|
|
codegen-units = 64
|
|
incremental = true
|
|
lto = false
|
|
opt-level = 0
|
|
debug = true
|
|
strip = false
|
|
|
|
[lib]
|
|
name = "app_lib"
|
|
crate-type = ["staticlib", "cdylib", "rlib"]
|
|
|
|
[dev-dependencies]
|
|
criterion = { version = "0.7.0", features = ["async_tokio"] }
|
|
|
|
[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 }
|
|
|
|
or_fun_call = "deny"
|
|
cognitive_complexity = "deny"
|
|
useless_let_if_seq = "deny"
|
|
use_self = "deny"
|
|
tuple_array_conversions = "deny"
|
|
trait_duplication_in_bounds = "deny"
|
|
suspicious_operation_groupings = "deny"
|
|
string_lit_as_bytes = "deny"
|
|
significant_drop_tightening = "deny"
|
|
significant_drop_in_scrutinee = "deny" |