[package]
name = "scp-node"
version = "0.1.0-beta.1"
description = "Application node composing relay, identity, and HTTP server for SCP"
edition.workspace = true
repository.workspace = true
license = "AGPL-3.0-only"
homepage.workspace = true
readme = "README.md"
keywords = ["node", "server", "relay", "identity"]
categories = ["network-programming", "command-line-utilities"]
[[bin]]
name = "scp-node"
path = "src/main.rs"
[dependencies]
scp-core = { path = "../scp-core", version = "=0.1.0-beta.1" }
scp-identity = { path = "../scp-identity", version = "=0.1.0-beta.1", features = ["production-dht"] }
scp-transport = { path = "../scp-transport", version = "=0.1.0-beta.1", features = [
"sqlite-blob",
"redb-blob",
"postgres-blob",
"s3-blob",
] }
scp-platform = { path = "../scp-platform", version = "=0.1.0-beta.1", features = ["testing", "sqlite", "file", "encrypting"] }
axum = { workspace = true, features = ["ws"] }
ed25519-dalek = { workspace = true }
instant-acme = "0.8"
rcgen = "0.14"
rustls = { version = "0.23", default-features = false, features = ["ring", "logging", "std"] }
rustls-pemfile = "2"
base64 = { workspace = true }
bs58 = { workspace = true }
rmp-serde = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
sha2 = { workspace = true }
subtle = { workspace = true }
thiserror = { workspace = true }
tokio = { workspace = true }
tokio-rustls = { version = "0.26", default-features = false, features = ["ring", "logging"] }
tokio-util = { workspace = true }
tokio-tungstenite = { version = "0.24" }
tower-http = { workspace = true }
hyper = { version = "1", features = ["server", "http1", "http2"] }
hyper-util = { version = "0.1", features = ["tokio", "server-auto", "http1", "http2"] }
tower-service = "0.3"
futures = "0.3"
hex = { workspace = true }
percent-encoding = { workspace = true }
rand = { workspace = true }
tracing = { workspace = true }
zeroize = { workspace = true }
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
x509-parser = "0.16"
[dev-dependencies]
ed25519-dalek = { workspace = true }
tokio = { workspace = true, features = ["macros", "rt-multi-thread", "test-util"] }
tokio-tungstenite = { version = "0.24", features = ["connect"] }
scp-core = { path = "../scp-core", features = ["allow_unencrypted_storage"] }
scp-platform = { path = "../scp-platform", features = ["testing"] }
tower = { version = "0.5", features = ["util"] }
http-body-util = "0.1"
hyper = "1"
rcgen = "0.14"
tempfile = "3"
[features]
allow_unencrypted_storage = ["scp-core/allow_unencrypted_storage"]
quic = ["scp-transport/quic"]
http3 = ["scp-transport/http3"]
udp = ["scp-transport/udp"]
coap = ["scp-transport/coap"]
[lints]
workspace = true