[package]
name = "rift-mesh"
version = "0.1.4"
edition = "2021"
description = "Mesh networking, session management, and E2EE for Rift P2P"
license = "Apache-2.0 OR MIT"
repository = "https://github.com/infinityabundance/riftd"
documentation = "https://docs.rs/rift-mesh"
keywords = ["p2p", "mesh", "networking", "e2ee"]
categories = ["network-programming", "cryptography"]

[dependencies]
anyhow = "1"
rift-core = { path = "../rift-core", version = "0.1.4" }
rift-discovery = { path = "../rift-discovery", version = "0.1.4" }
rift-nat = { path = "../rift-nat", version = "0.1.4" }
rift-protocol = { path = "../rift-protocol", version = "0.1.4" }
rift-metrics = { path = "../rift-metrics", version = "0.1.4" }
rift-rndzv = { path = "../rift-rndzv", version = "0.1.4", optional = true }
snow = "0.9"
tokio = { version = "1", features = ["macros", "net", "rt", "sync", "time"] }
tokio-stream = "0.1"
tracing = "0.1"
aes-gcm = { version = "0.10", features = ["alloc"] }
rand = "0.8"
bincode = "1"
hex = "0.4"
sha2 = "0.10"
subtle = "2.5"

[features]
default = ["predictive-rendezvous"]
predictive-rendezvous = ["rift-rndzv"]

[dev-dependencies]
criterion = "0.5"

[[bench]]
name = "mesh_encrypt_decrypt"
harness = false

[package.metadata.docs.rs]
all-features = true
