[package]
name = "geph4-client"
version = "4.99.29"
authors = ["nullchinchilla <nullchinchilla@pm.me>"]
edition = "2021"
description = "Geph client"
license = "GPL-3.0-only"
repository = "https://github.com/geph-official/geph4-client"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[patch.crates-io]
# sosistab2-obfsudp={path="../sosistab2-obfsudp"}
# sosistab2={path="../sosistab2"}

#geph5-client={path="../geph5/binaries/geph5-client"}
#sillad={path="../geph5/libraries/sillad"}
#geph4-protocol={path="../geph4-protocol"}

[lib]
name = "geph4client"
crate-type = ["staticlib", "lib"]

[dependencies]
anyhow = "1.0.75"

async-h1 = "2.3.4"
bincode = "1.3.3"
flume = "0.10.14"

os_pipe = "1.1.4"
dirs = "3.0.2"
ed25519-dalek = { version = "2", features = [
    "serde",
], default-features = false }
futures-util = "0.3.28"
hex = "0.4.3"
http-types = "2.12.0"
log = "0.4.20"
once_cell = "1.18.0"
parking_lot = { version = "0.11.2", features = ["serde"] }
rand = "0.7.3"
regex = "1.10.0"
rsa-fdh = "0.5.0"

scopeguard = "1.2.0"
serde = { version = "1.0.189", features = ["derive"] }
serde_json = "1.0.107"
sha2 = "0.9.9"
smol = "1.3.0"
smol-timeout = "0.6.0"
socksv5 = "0.2.0"

strsim = "0.10.0"
structopt = "0.3.26"
x25519-dalek = { version = "2", features = ["serde"], default-features = false }
chrono = "0.4.31"

socket2 = "0.3.19"
treebitmap = { package = "ip_network_table-deps-treebitmap", version = "0.5.0" }
pnet_packet = "0.35"
governor = "0.3.2"
async-dup = "1.2.2"
bytes = { version = "1.5.0", features = ["serde"] }
tap = "1.0.1"
smolscale = "0.4.2"
async-compat = "0.2.2"
im = "15.1.0"
event-listener = "2.5.3"
cached = "0.23.0"
rustls = "0.19.1"
webpki-roots = "0.21.1"
strip-ansi-escapes = "0.1.1"
 
geph-nat = "0.1.6"
mizaru = "0.1.3"
geph4-aioutils = "0.1.5"
# alloc_geiger = "0.1"
geph5-client = {version="0.2.34", features=["windivert"]}
geph5-broker-protocol = "0.2"
sillad = "0.2.1"
# socks2http
tokio = { version = "1.33.0", features = ["rt", "net", "io-util"] }
hyper = { version = "0.14.27", features = [
    "http1", 
    "client",
    "server",
    "tcp",
    "stream",
] }
pin-project = "1.1.3"
http = "0.2.9"
psl = "2.1.4"
async-trait = "0.1.73"
tracing = "0.1.39"
env_logger = "0.9.3"
rlimit = "0.6.2"
binary-search = "0.1.2"
fastrand = "1.9.0"

nanorpc = "0.1.12"

native-tls = { version = "0.2.11", features = ["vendored"] }
itertools = "0.10.5"
whoami = "1.4.1"
tiny_http = "0.12.0"
thiserror = "1.0.49"
backoff = "0.4.0"
shutdown_hooks = "0.1.0"
libc = "0.2.149"
signal-hook = "0.3.17"
dashmap = "5.5.3"
default-net = "0.11.0"
eff-wordlist = "1.0.2"
blake3 = "1.5.0"
byteorder = "1.5.0"
smol_str = "0.1.24"


stdcode = "0.1.14"
# jemallocator-global = "0.3.2"
panic-message = "0.3.0"
rusqlite = { version = "0.30.0", features = ["backup", "bundled"] }
cap = "0.1.2"
colored = "2.0.4"
pad = "0.1.6"
futures-intrusive = "0.5.0"
oneshot = "0.1.6"
io-lifetimes = "1.0.5"
rustix = "0.36.9"
# tmelcrypt = "0.2.7"

geph4-protocol = "0.19.0-alpha.4"
# geph4-protocol = { git = "https://github.com/geph-official/geph4-protocol", branch = "user-info" }

# melprot = "0.13.7"
acidjson = "0.1.3"
# melstructs = "0.3.2"
# gibbername = "0.1.1"
# melbootstrap = "0.8.4"
moka = "0.11.3"
async-once-cell = "0.5.3"
clone-macro = "0.1.0"
sqlx = { version = "0.7.3", default-features = false, features = [
    "sqlite",
    "runtime-tokio",
] }
derivative = "2.2.0"
async-signal = "0.2.5"
tmelcrypt = "0.2.7"
isocountry = "0.3.2"
base32 = "0.5.1"
async-event = "0.2.1"
# tracing-subscriber = "0.2.15"

[target.'cfg(unix)'.dependencies]
tun = "0.5.5"


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

[profile.dev]
panic = "unwind"
opt-level = 1


[profile.release-dbg]
inherits = "dev"
opt-level = 3

[profile.release]
panic = "abort"
opt-level = 3
#debug = 1
#strip = false
#lto=true
#codegen-units=1
