[package]
name = "peat-protocol"
version.workspace = true
edition.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
description = "Peat Coordination Protocol โ hierarchical capability composition over CRDTs for heterogeneous mesh networks"
homepage = "https://github.com/defenseunicorns/peat"
documentation = "https://docs.rs/peat-protocol"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
keywords = ["peat", "protocol", "mesh", "crdt", "coordination"]
categories = ["network-programming"]
[dependencies]
peat-schema = { path = "../peat-schema", version = "=0.9.0-rc.8" }
peat-mesh = { workspace = true }
tokio = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
uuid = { workspace = true }
thiserror = { workspace = true }
anyhow = { workspace = true }
async-trait = { workspace = true }
tracing = { workspace = true }
tracing-subscriber = { workspace = true }
dotenvy = { workspace = true }
chrono = { workspace = true }
tempfile = "3.13"
base64 = "0.22"
prost = "0.13"
postcard = { version = "1", default-features = false, features = ["alloc"] }
ed25519-dalek = { version = "2", features = ["rand_core"] }
bitflags = "2"
sha2 = "0.10"
rand_core = { version = "0.6", features = ["getrandom"] }
argon2 = "0.5"
hmac = "0.12"
chacha20poly1305 = "0.10"
x25519-dalek = { version = "2", features = ["static_secrets"] }
hkdf = "0.12"
subtle = "2.6"
automerge = { version = "0.7.1", optional = true }
iroh = { version = "0.97", optional = true, features = ["address-lookup-mdns"] }
iroh-blobs = { version = "0.99", optional = true }
redb = { version = "2.4", optional = true }
lru = { version = "0.16.3", optional = true }
toml = { version = "0.8", optional = true }
hex = "0.4"
mdns-sd = { version = "0.11", optional = true }
rand = { version = "0.9", optional = true }
futures-lite = { version = "2", optional = true }
negentropy = { version = "0.5", optional = true }
quick-xml = { version = "0.37", features = ["serialize"] }
log = { version = "0.4", optional = true }
peat-btle = { workspace = true, optional = true }
[features]
default = ["automerge-backend"]
automerge-backend = ["automerge", "iroh", "iroh-blobs", "redb", "lru", "toml", "mdns-sd", "rand", "futures-lite", "negentropy", "peat-mesh/automerge-backend"]
lite-transport = ["log", "peat-mesh/lite-bridge"]
bluetooth = ["peat-btle", "peat-mesh/bluetooth"]
relay-n0-hosted = []
[dev-dependencies]
proptest = { workspace = true }
criterion = { workspace = true }
tokio = { workspace = true, features = ["test-util"] }
tempfile = "3.13"
serial_test = "3.1"
[[bench]]
name = "cap_benchmarks"
harness = false