Documentation
[package]
authors = ["MaidSafe Developers <dev@maidsafe.net>"]
description = "Safe Node"
name = "sn_node"
version = "0.100.21"
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"]
local-discovery=["sn_networking/local-discovery"]
otlp = ["sn_logging/otlp"]
metrics = ["sn_logging/process-metrics"]
network-contacts = ["sn_peers_acquisition/network-contacts"]
open-metrics = ["sn_networking/open-metrics", "prometheus-client"]
quic=["sn_networking/quic"]

[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.5.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.11.0"
lazy_static = "~1.4.0"
libp2p = { version="0.53", features = ["tokio", "dns", "kad", "macros", "autonat"] }
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.28.5"
serde = { version = "1.0.133", features = [ "derive", "rc" ]}
sn_build_info = { path="../sn_build_info", version = "0.1.3" }
sn_peers_acquisition= { path="../sn_peers_acquisition", version = "0.1.13" }
sn_client = { path = "../sn_client", version = "0.99.26" }
sn_logging = { path = "../sn_logging", version = "0.2.16" }
sn_networking = { path = "../sn_networking", version = "0.12.9" }
sn_protocol = { path = "../sn_protocol", version = "0.9.3" }
sn_registers = { path = "../sn_registers", version = "0.3.6" }
sn_transfers = { path = "../sn_transfers", version = "0.14.30" }
thiserror = "1.0.23"
tokio = { version = "1.32.0", features = ["io-util", "macros", "parking_lot", "rt", "sync", "time"] }
tokio-stream = { version = "~0.1.12" }
tracing = { version = "~0.1.26" }
tracing-appender = "~0.2.0"
tracing-core = "0.1.30"
tracing-opentelemetry = { version = "0.21", optional = true }
tracing-subscriber = { version = "0.3.16" }
walkdir = "~2.4.0"
xor_name = "5.0.0"
strum = { version = "0.25.0", features = ["derive"] }
color-eyre = "0.6.2"

[dev-dependencies]
tempfile = "3.6.0"
reqwest = { version="0.11.18", default-features=false, features = ["rustls"] }
sn_protocol = { path = "../sn_protocol", version = "0.9.3", features = ["test-utils"]}

[lints]
workspace = true