[package]
name = "nym-sdk"
version.workspace = true
edition = "2021"
license.workspace = true
description = "Nym's Rust SDK"
repository = "https://github.com/nymtech/nym/sdk/rust/nym-sdk/"
# documentation = "https://docs.rs/nym-sdk" Max: once we upload to crates.io and this is generated, this can be uncommented.

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

[[bin]]
name = "nym-proxy-server"
path = "src/tcp_proxy/bin/proxy_server.rs"

[[bin]]
name = "nym-proxy-client"
path = "src/tcp_proxy/bin/proxy_client.rs"

[dependencies]
async-trait = { workspace = true }
bip39 = { workspace = true }
nym-client-core = { workspace = true, features = [
    "fs-credentials-storage",
    "fs-surb-storage",
    "fs-gateways-storage",
] }
nym-crypto = { workspace = true }
nym-gateway-requests = { workspace = true }
nym-bandwidth-controller = { workspace = true }
nym-credentials = { workspace = true }
nym-credentials-interface = { workspace = true }
nym-credential-storage = { workspace = true }
nym-credential-utils = { workspace = true }
nym-network-defaults = { workspace = true }
nym-sphinx = { workspace = true }
nym-statistics-common = { workspace = true }
nym-task = { workspace = true }
nym-topology = { workspace = true }
nym-socks5-client-core = { workspace = true }
nym-validator-client = { workspace = true , features = [
    "http-client",
] }
nym-http-api-client = { workspace = true }
nym-socks5-requests = { workspace = true }
nym-ordered-buffer = { workspace = true }
nym-service-providers-common = { workspace = true }
nym-sphinx-addressing = { workspace = true }
nym-bin-common = { workspace = true, features = [
    "basic_tracing",
] }
bytecodec = { workspace = true }
httpcodec = { workspace = true }
bytes = { workspace = true }
http = { workspace = true }
zeroize = { workspace = true }

futures = { workspace = true }
log = { workspace = true }
rand = { workspace = true, features = ["small_rng"] }
tap = { workspace = true }
thiserror = { workspace = true }
url = { workspace = true }
toml = { workspace = true }
tempfile = { workspace = true }

# tcpproxy dependencies
clap = { workspace = true, features = ["derive"] }
anyhow.workspace = true
dashmap.workspace = true
tokio.workspace = true
tokio-stream.workspace = true
tokio-util.workspace = true
uuid = { workspace = true, features = ["v4", "serde"] }
bincode = { workspace = true }
serde = { workspace = true, features = ["derive"] }
tracing.workspace = true
tracing-subscriber = { workspace = true, features = ["env-filter"] }
dirs.workspace = true

[dev-dependencies]
anyhow = { workspace = true }
dotenvy = { workspace = true }
reqwest = { workspace = true, features = ["json", "socks"] }
thiserror = { workspace = true }
tokio = { workspace = true, features = ["full"] }
time = { workspace = true }
nym-bin-common = {workspace = true, features = ["basic_tracing"] }

# extra dependencies for libp2p examples
#libp2p = { git = "https://github.com/ChainSafe/rust-libp2p.git", rev = "e3440d25681df380c9f0f8cfdcfd5ecc0a4f2fb6", features = [ "identify", "macros", "ping", "tokio", "tcp", "dns", "websocket", "noise", "mplex", "yamux", "gossipsub" ]}
tokio-stream = { workspace = true }
tokio-util = { workspace = true, features = ["codec"] }
parking_lot = { workspace = true }
hex = { workspace = true }

[features]
libp2p-vanilla = []
