[package]
name = "sd-p2p"
version = "0.2.0"
description = "Rust Peer to Peer Networking Library"
authors = ["Oscar Beaumont <oscar@otbeaumont.me>"]
readme = "README.md"
license = { workspace = true }
repository = { workspace = true }
edition = { workspace = true }

# TODO: Remove features??? and dependencies

[features]
default = []
specta = []

[dependencies]
base64 = { workspace = true }
pin-project-lite = { workspace = true }
serde = { workspace = true, features = ["derive"] }
specta = { workspace = true }
thiserror = { workspace = true }
tokio = { workspace = true, features = [
	"macros",
	"sync",
	"time",
	"io-util",
	"fs",
] }
tokio-stream = { workspace = true, features = ["sync"] }
tokio-util = { workspace = true, features = ["compat"] }
tracing = { workspace = true }
uuid = { workspace = true, features = ["serde"] }

ed25519-dalek = { version = "2.1.1", features = [] }
flume = "=0.11.0" # Must match version used by `mdns-sd`
futures-core = "0.3.30"
if-watch = { version = "=3.2.0", features = [
	"tokio",
] } # Override the features of if-watch which is used by libp2p-quic
libp2p = { version = "0.53.2", features = [
	"tokio",
	"serde",
	"macros",
	"quic",
	"autonat",
	"relay",
	"yamux",
	"noise",
	"dcutr",
] }
libp2p-stream = "0.1.0-alpha"
mdns-sd = "0.10.3"
rand_core = { version = "0.6.4" }
streamunordered = "0.5.3"
zeroize = { version = "1.7.0", features = ["derive"] }
base91 = "0.1.0"
sha256 = "1.5.0"
stable-vec = "0.4.0"
hash_map_diff = "0.2.0"
sync_wrapper = "0.1.2"
reqwest.workspace = true

[dev-dependencies]
tokio = { workspace = true, features = ["rt-multi-thread", "macros"] }
tracing-subscriber = { version = "0.3.18" }
uuid = { workspace = true, features = ["v4"] }
