[workspace.package] authors = ["Mullvad VPN"] repository = "https://github.com/mullvad/mullvadvpn-app/" license = "GPL-3.0" edition = "2024" rust-version = "1.88.0" [workspace] resolver = "2" members = [ "test-manager", "test-runner", "test-rpc", "socks-server", "connection-checker", ] # Keep all lints in sync with `../Cargo.toml` [workspace.lints.rust] # Security non_ascii_idents = "forbid" # Deny old style Rust rust_2018_idioms = { level = "deny", priority = -1 } macro_use_extern_crate = "deny" absolute_paths_not_starting_with_crate = "deny" # Easy to read style and opinionated best practices explicit_outlives_requirements = "warn" missing_abi = "deny" unused_lifetimes = "warn" unused_macro_rules = "warn" single_use_lifetimes = "warn" [workspace.lints.clippy] unused_async = "deny" implicit_clone = "warn" [workspace.dependencies] dirs = "6.0.0" futures = "0.3" tokio = { version = "1.44", features = [ "macros", "rt", "process", "time", "fs", "io-util", "rt-multi-thread", ] } tokio-serial = "5.4.1" # Serde and related crates serde = "1.0" serde_json = "1.0" tokio-serde = { version = "0.8.0", features = ["json"] } # Tonic and related crates tonic = "0.13.1" tonic-build = { version = "0.13.1", default-features = false } tower = "0.5.1" prost = "0.13.3" prost-types = "0.13.3" tarpc = { version = "0.30", features = ["tokio1", "serde-transport", "serde1"] } hyper-util = { version = "0.1.8", features = [ "client", "client-legacy", "http2", ] } # Logging env_logger = "0.11.7" thiserror = "2.0" log = "0.4" colored = "2.0.0" # Proxy protocols shadowsocks = "1.20.3" shadowsocks-service = "1.20.3" windows-sys = "0.52.0" chrono = { version = "0.4.26", default-features = false } clap = { version = "4.2.7", features = ["cargo", "derive"] } bytes = "1.3.0" async-trait = "0.1.58" socket2 = "0.5.7" surge-ping = "0.8" nix = { version = "0.30.1", features = ["ioctl", "socket", "net", "signal"] } rand = "0.9"