[package] authors = ["MaidSafe Developers "] description = "Safe Node" name = "sn_node" version = "0.112.6" edition = "2021" license = "GPL-3.0" homepage = "https://maidsafe.net" readme = "README.md" repository = "https://github.com/maidsafe/safe_network" [[bin]] name = "safenode" path = "src/bin/safenode/main.rs" [features] default = ["metrics", "upnp", "open-metrics", "encrypt-records"] local = ["sn_networking/local", "sn_evm/local"] otlp = ["sn_logging/otlp"] metrics = ["sn_logging/process-metrics"] network-contacts = ["sn_peers_acquisition/network-contacts"] nightly = [] open-metrics = ["sn_networking/open-metrics", "prometheus-client"] encrypt-records = ["sn_networking/encrypt-records"] upnp = ["sn_networking/upnp"] loud = ["sn_networking/loud"] # loud mode: print important messages to console [dependencies] assert_fs = "1.0.0" async-trait = "0.1" bls = { package = "blsttc", version = "8.0.1" } bytes = { version = "1.0.1", features = ["serde"] } clap = { version = "4.2.1", features = ["derive"] } crdts = { version = "7.3", default-features = false, features = ["merkle"] } chrono = "~0.4.19" custom_debug = "~0.6.1" const-hex = "1.12.0" dirs-next = "~2.0.0" eyre = "0.6.8" file-rotate = "0.7.3" futures = "~0.3.13" hex = "~0.4.3" itertools = "~0.12.1" libp2p = { version = "0.54.1", features = ["tokio", "dns", "kad", "macros"] } prometheus-client = { version = "0.22", optional = true } # watch out updating this, protoc compiler needs to be installed on all build systems # arm builds + musl are very problematic prost = { version = "0.9" } tonic = { version = "0.6.2" } rand = { version = "~0.8.5", features = ["small_rng"] } rmp-serde = "1.1.1" rayon = "1.8.0" self_encryption = "~0.30.0" serde = { version = "1.0.133", features = ["derive", "rc"] } sn_build_info = { path = "../sn_build_info", version = "0.1.19" } sn_peers_acquisition = { path = "../sn_peers_acquisition", version = "0.5.7" } sn_logging = { path = "../sn_logging", version = "0.2.40" } sn_networking = { path = "../sn_networking", version = "0.19.5" } sn_protocol = { path = "../sn_protocol", version = "0.17.15" } sn_registers = { path = "../sn_registers", version = "0.4.3" } sn_transfers = { path = "../sn_transfers", version = "0.20.3" } sn_service_management = { path = "../sn_service_management", version = "0.4.3" } sn_evm = { path = "../sn_evm", version = "0.1.4" } sysinfo = { version = "0.30.8", default-features = false } thiserror = "1.0.23" tokio = { version = "1.32.0", features = [ "io-util", "macros", "parking_lot", "rt", "sync", "time", "signal", ] } tokio-stream = { version = "~0.1.12" } tracing = { version = "~0.1.26" } tracing-appender = "~0.2.0" tracing-opentelemetry = { version = "0.21", optional = true } tracing-subscriber = { version = "0.3.16" } walkdir = "~2.5.0" xor_name = "5.0.0" strum = { version = "0.26.2", features = ["derive"] } color-eyre = "0.6.2" [dev-dependencies] evmlib = { path = "../evmlib", version = "0.1.4" } autonomi = { path = "../autonomi", version = "0.2.4", features = ["registers"] } reqwest = { version = "0.12.2", default-features = false, features = [ "rustls-tls-manual-roots", ] } serde_json = "1.0" sn_protocol = { path = "../sn_protocol", version = "0.17.15", features = [ "rpc", ] } sn_transfers = { path = "../sn_transfers", version = "0.20.3", features = [ "test-utils", ] } tempfile = "3.6.0" # Do not specify the version field. Release process expects even the local dev deps to be published. # Removing the version field is a workaround. test_utils = { path = "../test_utils" } [lints] workspace = true