[package]
name = "geph5-client"
edition = "2024"
license = "MPL-2.0"
description = "Geph5 client"
version = "0.2.97"
repository.workspace = true

[features]
windivert = []
aws_lambda = ["aws-config", "aws-sdk-lambda", "aws-smithy-runtime"]

[lib]
crate-type = ["lib", "staticlib", "cdylib"]

[target.aarch64-apple-ios]
linker = "clang"

[dependencies]
anyctx = "0.1.0"
anyhow = "1.0.98"
arc-writer = { version = "0.2.1-alpha.1", path = "../../libraries/arc-writer" }
arrayref = "0.3.9"
async-broadcast = "0.7.2"
async-compat = "0.2.4"
async-dup = "1.2.4"
async-event = "0.2.1"
async-io-bufpool = "0.1.2"
async-native-tls = "0.5.0"
async-trait = "0.1.88"
atomic_float = "1.1.0"
aws-config = { version = "=1.5.4", optional = true }
aws-sdk-lambda = { version = "=1.35.0", features = ["rustls"], optional = true }
aws-smithy-runtime = { version = "1", optional = true }
base32 = "0.5.1"
base64 = "0.22.1"
blake3 = "1.8.2"
blind-rsa-signatures = "0.15.2"
derive_more = "=2.0.1"
bytes = "1.10.1"
chrono = "0.4.41"
clap = { version = "4.5.41", features = ["derive"] }
clone-macro = "0.1.0"
crossbeam-queue = "0.3.12"
ctrlc = { version = "3.4.7", features = ["termination"] }
dashmap = "6.1.0"
dirs = "5.0.1"
ed25519-dalek = { version = "2", default-features = false, features = [
    "serde",
] }
elevated-command = "1.1.2"
event-listener = "5.4.0"
futures-concurrency = "7.6.3"
futures-intrusive = "0.5.0"
futures-util = "0.3.31"
geph5-broker-protocol = { version = "0.2", path = "../../libraries/geph5-broker-protocol" }
geph5-misc-rpc = { version = "0.2", path = "../../libraries/geph5-misc-rpc" }
# geph5-ip-to-asn = { version = "0.2", path = "../../libraries/geph5-ip-to-asn"}
hex = "0.4.3"
http = "1.3.1"
http-body-util = "0.1.3"
hyper = { version = "1.6.0", features = ["http1", "client", "server"] }
hyper-rustls = { version = "0.24.2", features = ["webpki-roots"] }
hyper-util = { version = "0.1.16" }
ipnet = "2.11.0"
ipstack-geph = "0.2.9"
isocountry = "0.3.2"
itertools = "0.13.0"
libc = "0.2.174"
minisign-verify = "0.2.4"
mizaru2 = { version = "0.2.16", path = "../../libraries/mizaru2" }
moka = { version = "0.12.10", features = ["future", "sync"] }
nanorpc = "0.1.13"
nanorpc-sillad = { version = "0.1", path = "../../libraries/nanorpc-sillad" }
nursery_macro = "0.1.0"
once_cell = "1.21.3"
oneshot = "0.1.11"
ordered-float = "5.0.0"
parking_lot = "0.12.4"
picomux = { version = "0.1.15", path = "../../libraries/picomux" }
pin-project = "1.1.10"
pnet_packet = "0.35.0"
prefix-trie = "0.7.0"
psl = "2.1.127"
rand = "0.8.5"
reqwest = { version = "0.12.22", default-features = false, features = [
    "rustls-tls-webpki-roots",
] }
scopeguard = "1.2.0"
serde = { version = "1", features = ["derive"] }
serde_json = "1.0.141"
serde_yaml = "0.9.34"
sillad = { version = "0.2.8", path = "../../libraries/sillad" }
sillad-conntest = { version = "0.2", path = "../../libraries/sillad-conntest" }
sillad-native-tls = { version = "0.2", path = "../../libraries/sillad-native-tls" }
sillad-sosistab3 = { version = "0.2.17", path = "../../libraries/sillad-sosistab3" }
sillad-meeklike = { version = "0.1", path = "../../libraries/sillad-meeklike" }
sillad-hex = { version = "0.1", path = "../../libraries/sillad-hex" }
simple-dns = "0.7.1"
slab = "0.4.10"
smol = "2.0.2"
smol-timeout2 = "0.6.1"
smol_str = { version = "0.2.2", features = ["serde"] }
smolscale = "0.4.16"
socksv5 = "0.3.1"
sqlx = { version = "0.7.4", features = ["sqlite", "runtime-tokio"] }
stdcode = "0.1.14"
tachyonix = "0.3.1"
tap = "1.0.1"
thiserror = "1.0.69"
tokio = { version = "1.46.1", features = ["rt", "net", "io-util"] }
tower-service = "0.3.3"
tracing = "0.1.41"
tracing-subscriber = { version = "0.3.19", features = ["json"] }
tun = "0.6.1"
x25519-dalek = { version = "2", default-features = false, features = ["serde"] }
binary-search = "0.1.3"
rlimit = "0.10.2"
kanal = "0.1.1"
async-channel = "2.5.0"
tracing-oslog = "0.3.0"


[target.'cfg(windows)'.dependencies]
winapi = { version = "0.3.9", features = [
    "minwindef",
    "mmsystem",
    "timeapi",
    "std",
] }
