[package]
name        = "quicprochat-p2p"
version     = "0.1.0"
edition.workspace     = true
description = "P2P transport layer for quicprochat using iroh."
license     = "Apache-2.0 OR MIT"
repository.workspace  = true

[features]
traffic-resistance = []

[lints]
workspace = true

[dependencies]
iroh        = "0.96"
tokio       = { version = "1", features = ["macros", "rt-multi-thread", "time", "sync", "net", "io-util"] }
async-trait = "0.1"
tracing     = "0.1"
anyhow      = "1"

# Mesh identity & store-and-forward
quicprochat-core = { path = "../quicprochat-core", default-features = false }
serde           = { workspace = true }
serde_json      = { workspace = true }
ciborium        = { workspace = true }
sha2            = { workspace = true }
hex             = { workspace = true }

# Broadcast channels (ChaCha20-Poly1305 symmetric encryption)
chacha20poly1305 = { workspace = true }
rand             = { workspace = true }
zeroize          = { workspace = true }

# Lightweight mesh link handshake (X25519 ECDH + HKDF)
x25519-dalek     = { workspace = true }
hkdf             = { workspace = true }
thiserror        = { workspace = true }

[dev-dependencies]
tempfile = "3"
