# Copyright 2020 - Nym Technologies SA # SPDX-License-Identifier: Apache-2.0 [profile.release] panic = "abort" opt-level = "s" overflow-checks = true [profile.dev] panic = "abort" [profile.test] # equivalent of running in `--release` (but since we're in test profile we're keeping overflow checks and all of those by default) opt-level = 3 [workspace] resolver = "2" members = [ "clients/native", "clients/native/websocket-requests", "clients/socks5", "common/authenticator-requests", "common/async-file-watcher", "common/bandwidth-controller", "common/bin-common", "common/client-core", "common/client-core/config-types", "common/client-core/surb-storage", "common/client-core/gateways-storage", "common/client-libs/gateway-client", "common/client-libs/mixnet-client", "common/client-libs/validator-client", "common/commands", "common/config", "common/cosmwasm-smart-contracts/coconut-bandwidth-contract", "common/cosmwasm-smart-contracts/ecash-contract", "common/cosmwasm-smart-contracts/coconut-dkg", "common/cosmwasm-smart-contracts/contracts-common", "common/cosmwasm-smart-contracts/group-contract", "common/cosmwasm-smart-contracts/mixnet-contract", "common/cosmwasm-smart-contracts/multisig-contract", "common/cosmwasm-smart-contracts/vesting-contract", "common/country-group", "common/credential-storage", "common/credentials", "common/credential-utils", "common/credentials-interface", "common/crypto", "common/dkg", "common/ecash-double-spending", "common/ecash-time", "common/execute", "common/exit-policy", "common/gateway-requests", "common/gateway-storage", "common/http-api-client", "common/http-api-common", "common/inclusion-probability", "common/ip-packet-requests", "common/ledger", "common/mixnode-common", "common/network-defaults", "common/node-tester-utils", "common/nonexhaustive-delayqueue", "common/nymcoconut", "common/nym_offline_compact_ecash", "common/nym-id", "common/nym-metrics", "common/nymsphinx", "common/nymsphinx/acknowledgements", "common/nymsphinx/addressing", "common/nymsphinx/anonymous-replies", "common/nymsphinx/chunking", "common/nymsphinx/cover", "common/nymsphinx/forwarding", "common/nymsphinx/framing", "common/nymsphinx/params", "common/nymsphinx/routing", "common/nymsphinx/types", "common/nyxd-scraper", "common/pemstore", "common/serde-helpers", "common/socks5-client-core", "common/socks5/proxy-helpers", "common/socks5/requests", "common/store-cipher", "common/task", "common/topology", "common/tun", "common/types", "common/wasm/client-core", "common/wasm/storage", "common/wasm/utils", "common/wireguard", "common/wireguard-types", "explorer-api", "explorer-api/explorer-api-requests", "explorer-api/explorer-client", "gateway", "integrations/bity", "mixnode", "sdk/lib/socks5-listener", "sdk/rust/nym-sdk", "service-providers/authenticator", "service-providers/common", "service-providers/ip-packet-router", "service-providers/network-requester", "nym-network-monitor", "nym-api", "nym-browser-extension/storage", "nym-api/nym-api-requests", "nym-node", "nym-node/nym-node-http-api", "nym-node/nym-node-requests", "nym-outfox", "nym-validator-rewarder", "tools/internal/ssl-inject", # "tools/internal/sdk-version-bump", "tools/nym-cli", "tools/nym-id-cli", "tools/nym-nr-query", "tools/nymvisor", "tools/ts-rs-cli", "wasm/client", # "wasm/full-nym-wasm", # If we uncomment this again, remember to also uncomment the profile settings below "wasm/mix-fetch", "wasm/node-tester", "wasm/zknym-lib", "tools/internal/testnet-manager", "tools/internal/testnet-manager/dkg-bypass-contract", ] default-members = [ "clients/native", "clients/socks5", "gateway", "service-providers/network-requester", "mixnode", "nym-api", "tools/nymvisor", "explorer-api", "nym-validator-rewarder", "nym-node", ] exclude = [ "explorer", "contracts", "nym-wallet", "nym-vpn/ui/src-tauri", "cpu-cycles", "sdk/ffi/cpp", ] [workspace.package] authors = ["Nym Technologies SA"] repository = "https://github.com/nymtech/nym" homepage = "https://nymtech.net" documentation = "https://nymtech.net" edition = "2021" license = "Apache-2.0" rust-version = "1.80" readme = "README.md" [workspace.dependencies] addr = "0.15.6" aes = "0.8.1" aes-gcm = "0.10.1" anyhow = "1.0.71" argon2 = "0.5.0" async-trait = "0.1.81" axum = "0.7.5" axum-extra = "0.9.3" base64 = "0.22.1" bincode = "1.3.3" bip39 = { version = "2.0.0", features = ["zeroize"] } # can we unify those? bit-vec = "0.7.0" bitvec = "1.0.0" blake3 = "1.5.4" bloomfilter = "1.0.14" bs58 = "0.5.1" bytecodec = "0.4.15" bytes = "1.7.1" cargo_metadata = "0.18.1" celes = "2.4.0" cfg-if = "1.0.0" chacha20 = "0.9.0" chacha20poly1305 = "0.10.1" chrono = "0.4.31" cipher = "0.4.3" clap = "4.5.16" clap_complete = "4.5" clap_complete_fig = "4.5" colored = "2.0" comfy-table = "6.0.0" console = "0.15.8" console-subscriber = "0.1.1" console_error_panic_hook = "0.1" const-str = "0.5.6" const_format = "0.2.32" criterion = "0.4" csv = "1.3.0" ctr = "0.9.1" cupid = "0.6.1" curve25519-dalek = "4.1" dashmap = "5.5.3" defguard_wireguard_rs = "0.4.2" digest = "0.10.7" dirs = "4.0" doc-comment = "0.3" dotenvy = "0.15.6" ecdsa = "0.16" ed25519-dalek = "2.1" etherparse = "0.13.0" eyre = "0.6.9" fastrand = "2.1.1" flate2 = "1.0.33" futures = "0.3.28" generic-array = "0.14.7" getrandom = "0.2.10" getset = "0.1.1" handlebars = "3.5.5" headers = "0.4.0" hex = "0.4.3" hex-literal = "0.3.3" hkdf = "0.12.3" hmac = "0.12.1" http = "1" httpcodec = "0.2.3" humantime = "2.1.0" humantime-serde = "1.1.1" hyper = "1.3.1" indicatif = "0.17.8" inquire = "0.6.2" ip_network = "0.4.1" ipnetwork = "0.20" isocountry = "0.3.2" itertools = "0.13.0" k256 = "0.13" lazy_static = "1.4.0" ledger-transport = "0.10.0" ledger-transport-hid = "0.10.0" log = "0.4" maxminddb = "0.23.0" mime = "0.3.17" nix = "0.27.1" notify = "5.1.0" okapi = "0.7.0" once_cell = "1.7.2" opentelemetry = "0.19.0" opentelemetry-jaeger = "0.18.0" parking_lot = "0.12.1" pem = "0.8" petgraph = "0.6.5" pin-project = "1.0" pretty_env_logger = "0.4.0" publicsuffix = "2.2.3" quote = "1" rand = "0.8.5" rand-07 = "0.7.3" rand_chacha = "0.3" rand_chacha_02 = "0.2" rand_core = "0.6.3" rand_distr = "0.4" rand_pcg = "0.3.1" rand_seeder = "0.2.3" rayon = "1.5.1" regex = "1.10.6" reqwest = { version = "0.12.4", default-features = false } rocket = "0.5.0" rocket_cors = "0.6.0" rocket_okapi = "0.8.0" safer-ffi = "0.1.12" schemars = "0.8.1" semver = "1.0.23" serde = "1.0.209" serde_bytes = "0.11.15" serde_derive = "1.0" serde_json = "1.0.127" serde_repr = "0.1" serde_with = "3.9.0" serde_yaml = "0.9.25" sha2 = "0.10.8" si-scale = "0.2.3" sphinx-packet = "0.1.1" sqlx = "0.6.3" strum = "0.25" subtle-encoding = "0.5" syn = "1" sysinfo = "0.30.12" tap = "1.0.1" tar = "0.4.40" tempfile = "3.5.0" thiserror = "1.0.63" time = "0.3.30" tokio = "1.39" tokio-stream = "0.1.15" tokio-test = "0.4.4" tokio-tungstenite = { version = "0.20.1" } tokio-util = "0.7.11" toml = "0.8.14" tower = "0.4.13" tower-http = "0.5.2" tracing = "0.1.37" tracing-opentelemetry = "0.19.0" tracing-subscriber = "0.3.16" tracing-tree = "0.2.2" ts-rs = "7.0.0" tungstenite = { version = "0.20.1", default-features = false } url = "2.5" utoipa = "4.2" utoipa-rapidoc = "4.0" utoipa-swagger-ui = "7.1" utoipauto = "0.1" uuid = "*" vergen = { version = "=8.3.1", default-features = false } walkdir = "2" wasm-bindgen-test = "0.3.36" x25519-dalek = "2.0.0" zeroize = "1.6.0" prometheus = { version = "0.13.0" } # coconut/DKG related # unfortunately until https://github.com/zkcrypto/bls12_381/issues/10 is resolved, we have to rely on the fork # as we need to be able to serialize Gt so that we could create the lookup table for baby-step-giant-step algorithm # plus to make our live easier we need serde support from https://github.com/zkcrypto/bls12_381/pull/125 bls12_381 = { git = "https://github.com/jstuczyn/bls12_381", default-features = false, branch = "temp/experimental-serdect" } group = { version = "0.13.0", default-features = false } ff = { version = "0.13.0", default-features = false } # cosmwasm-related cosmwasm-derive = "=1.4.3" cosmwasm-schema = "=1.4.3" cosmwasm-std = "=1.4.3" # use 0.5.0 as that's the version used by cosmwasm-std 1.4.3 # (and ideally we don't want to pull the same dependency twice) serde-json-wasm = "=0.5.0" cosmwasm-storage = "=1.4.3" # same version as used by cosmwasm cw-utils = "=1.0.1" cw-storage-plus = "=1.2.0" cw2 = { version = "=1.1.2" } cw3 = { version = "=1.1.2" } cw4 = { version = "=1.1.2" } cw-controllers = { version = "=1.1.0" } # cosmrs-related bip32 = { version = "0.5.2", default-features = false } # temporarily using a fork again (yay.) because we need staking and slashing support (which are already on main but not released) # plus response message parsing (which is, as of the time of writing this message, waiting to get merged) #cosmrs = { path = "../cosmos-rust-fork/cosmos-rust/cosmrs" } cosmrs = { git = "https://github.com/cosmos/cosmos-rust", rev = "4b1332e6d8258ac845cef71589c8d362a669675a" } # unfortuntely we need a fork by yours truly to get the staking support tendermint = "0.37.0" # same version as used by cosmrs tendermint-rpc = "0.37.0" # same version as used by cosmrs prost = { version = "0.12", default-features = false } # wasm-related dependencies gloo-utils = "0.2.0" gloo-net = "0.5.0" # use a separate branch due to feature unification failures # this is blocked until the upstream removes outdates `wasm_bindgen` feature usage # indexed_db_futures = "0.4.1" indexed_db_futures = { git = "https://github.com/TiemenSch/rust-indexed-db", branch = "update-uuid" } js-sys = "0.3.70" serde-wasm-bindgen = "0.6.5" tsify = "0.4.5" wasm-bindgen = "0.2.93" wasm-bindgen-futures = "0.4.43" wasmtimer = "0.2.0" web-sys = "0.3.70" # Profile settings for individual crates [profile.release.package.nym-socks5-listener] strip = true codegen-units = 1 [profile.release.package.nym-client-wasm] # lto = true opt-level = 'z' [profile.release.package.nym-node-tester-wasm] # lto = true opt-level = 'z' # Commented out since the crate is also commented out from the inclusion in the # workspace above. We should uncomment this if we re-include it in the # workspace #[profile.release.package.nym-wasm-sdk] ## lto = true #opt-level = 'z' [profile.release.package.mix-fetch-wasm] # lto = true opt-level = 'z'