# 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/async-file-watcher", "common/authenticator-requests", "common/bandwidth-controller", "common/bin-common", "common/client-core", "common/client-core/config-types", "common/client-core/gateways-storage", "common/client-core/surb-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/coconut-dkg", "common/cosmwasm-smart-contracts/contracts-common", "common/cosmwasm-smart-contracts/ecash-contract", "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/credential-utils", "common/credential-verification", "common/credentials", "common/credentials-interface", "common/crypto", "common/dkg", "common/ecash-time", "common/execute", "common/exit-policy", "common/gateway-requests", "common/gateway-stats-storage", "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/nym-id", "common/nym-metrics", "common/nym_offline_compact_ecash", "common/nymcoconut", "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/service-provider-requests-common", "common/socks5-client-core", "common/socks5/proxy-helpers", "common/socks5/requests", "common/statistics", "common/store-cipher", "common/task", "common/ticketbooks-merkle", "common/topology", "common/tun", "common/types", "common/verloc", "common/wasm/client-core", "common/wasm/storage", "common/wasm/utils", "common/wireguard", "common/wireguard-types", "documentation/autodoc", "explorer-api", "explorer-api/explorer-api-requests", "explorer-api/explorer-client", "gateway", "integrations/bity", "nym-api", "nym-api/nym-api-requests", "nym-browser-extension/storage", "nym-credential-proxy/nym-credential-proxy", "nym-credential-proxy/nym-credential-proxy-requests", "nym-credential-proxy/vpn-api-lib-wasm", "nym-network-monitor", "nym-node", "nym-node-status-api/nym-node-status-agent", "nym-node-status-api/nym-node-status-api", "nym-node-status-api/nym-node-status-client", "nym-node/nym-node-metrics", "nym-node/nym-node-requests", "nym-outfox", "nym-validator-rewarder", "nyx-chain-watcher", "sdk/ffi/cpp", "sdk/ffi/go", "sdk/ffi/shared", "sdk/rust/nym-sdk", "service-providers/authenticator", "service-providers/common", "service-providers/ip-packet-router", "service-providers/network-requester", "tools/echo-server", "tools/echo-server", "tools/internal/contract-state-importer/importer-cli", "tools/internal/contract-state-importer/importer-contract", "tools/internal/mixnet-connectivity-check", # "tools/internal/sdk-version-bump", "tools/internal/ssl-inject", "tools/internal/testnet-manager", "tools/internal/testnet-manager", "tools/internal/testnet-manager/dkg-bypass-contract", "tools/internal/testnet-manager/dkg-bypass-contract", "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", ] default-members = [ "clients/native", "clients/socks5", "explorer-api", "nym-api", "nym-credential-proxy/nym-credential-proxy", "nym-node", "nym-node-status-api/nym-node-status-agent", "nym-node-status-api/nym-node-status-api", "nym-validator-rewarder", "nyx-chain-watcher", "service-providers/authenticator", "service-providers/ip-packet-router", "service-providers/network-requester", "tools/nymvisor", ] exclude = [ "explorer", "contracts", "nym-wallet", "cpu-cycles", ] [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" aes-gcm-siv = "0.11.1" aead = "0.5.2" anyhow = "1.0.95" arc-swap = "1.7.1" argon2 = "0.5.0" async-trait = "0.1.86" axum-client-ip = "0.6.1" axum = "0.7.5" axum-extra = "0.9.4" base64 = "0.22.1" bincode = "1.3.3" bip39 = { version = "2.0.0", features = ["zeroize"] } bit-vec = "0.7.0" # can we unify those? bitvec = "1.0.0" blake3 = "1.5.5" bloomfilter = "1.0.14" bs58 = "0.5.1" bytecodec = "0.4.15" bytes = "1.7.2" 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.39" cipher = "0.4.3" clap = "4.5.28" clap_complete = "4.5" clap_complete_fig = "4.5" colored = "2.0" comfy-table = "7.1.4" console = "0.15.10" console-subscriber = "0.1.1" console_error_panic_hook = "0.1" const-str = "0.5.6" const_format = "0.2.34" criterion = "0.5" csv = "1.3.1" ctr = "0.9.1" cupid = "0.6.1" curve25519-dalek = "4.1" dashmap = "5.5.3" # We want https://github.com/DefGuard/wireguard-rs/pull/64 , but there's no crates.io release being pushed out anymore defguard_wireguard_rs = { git = "https://github.com/DefGuard/wireguard-rs.git", rev = "v0.4.7" } digest = "0.10.7" dirs = "5.0" doc-comment = "0.3" dotenvy = "0.15.6" ecdsa = "0.16" ed25519-dalek = "2.1" etherparse = "0.13.0" envy = "0.4" eyre = "0.6.9" fastrand = "2.1.1" flate2 = "1.0.35" futures = "0.3.31" futures-util = "0.3" generic-array = "0.14.7" getrandom = "0.2.10" getset = "0.1.4" handlebars = "3.5.5" headers = "0.4.0" hex = "0.4.3" hex-literal = "0.3.3" hickory-resolver = "0.24.3" hkdf = "0.12.3" hmac = "0.12.1" http = "1" http-body-util = "0.1" httpcodec = "0.2.3" humantime = "2.1.0" humantime-serde = "1.1.1" human-repr = "1.1.0" hyper = "1.4.1" hyper-util = "0.1" indicatif = "0.17.11" 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.5.0" ledger-transport = "0.10.0" ledger-transport-hid = "0.10.0" log = "0.4" maxminddb = "0.23.0" rs_merkle = "1.4.2" mime = "0.3.17" moka = { version = "0.12", features = ["future"] } nix = "0.27.1" notify = "5.1.0" okapi = "0.7.0" once_cell = "1.20.3" opentelemetry = "0.19.0" opentelemetry-jaeger = "0.18.0" parking_lot = "0.12.3" pem = "0.8" petgraph = "0.6.5" pin-project = "1.1" pin-project-lite = "0.2.16" pretty_env_logger = "0.4.0" publicsuffix = "2.2.3" quote = "1" rand = "0.8.5" rand_chacha = "0.3" 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.13" schemars = "0.8.21" semver = "1.0.25" serde = "1.0.217" serde_bytes = "0.11.15" serde_derive = "1.0" serde_json = "1.0.138" serde_json_path = "0.7.2" 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.7.4" strum = "0.26" strum_macros = "0.26" subtle-encoding = "0.5" syn = "1" sysinfo = "0.33.0" tap = "1.0.1" tar = "0.4.43" tempfile = "3.15" thiserror = "2.0" time = "0.3.37" tokio = "1.43" tokio-stream = "0.1.17" tokio-test = "0.4.4" tokio-tun = "0.11.5" tokio-tungstenite = { version = "0.20.1" } tokio-util = "0.7.13" toml = "0.8.20" tower = "0.4.13" tower-http = "0.5.2" tracing = "0.1.41" tracing-opentelemetry = "0.19.0" tracing-subscriber = "0.3.19" tracing-tree = "0.2.2" tracing-log = "0.2" ts-rs = "10.1.0" tungstenite = { version = "0.20.1", default-features = false } url = "2.5" utoipa = "5.2" utoipa-swagger-ui = "8.0" utoipauto = "0.2" uuid = "*" vergen = { version = "=8.3.1", default-features = false } walkdir = "2" wasm-bindgen-test = "0.3.49" 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 } subtle = "2.5.0" # cosmwasm-related 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.3", default-features = false } cosmrs = { version = "0.21.1" } tendermint = "0.40.0" tendermint-rpc = "0.40.0" prost = { version = "0.13", default-features = false } # wasm-related dependencies gloo-utils = "0.2.0" gloo-net = "0.6.0" indexed_db_futures = "0.6.0" js-sys = "0.3.76" serde-wasm-bindgen = "0.6.5" tsify = "0.4.5" wasm-bindgen = "0.2.99" wasm-bindgen-futures = "0.4.49" wasmtimer = "0.4.1" web-sys = "0.3.76" # Profile settings for individual crates # Compile-time verified queries do quite a bit of work at compile time. Incremental # actions like cargo check and cargo build can be significantly faster when # using an optimized build [profile.dev.package.sqlx-macros] opt-level = 3 [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'