[package]
edition = "2021"
name = "peat-mesh"
version = "0.7.0"
authors = ["Kit Plummer <kitplummer@defenseunicorns.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Peat mesh networking library with CRDT sync, transport security, and topology management"
homepage = "https://github.com/defenseunicorns/peat-mesh"
documentation = "https://docs.rs/peat-mesh"
readme = "README.md"
keywords = [
"mesh",
"networking",
"crdt",
"p2p",
"topology",
]
categories = [
"network-programming",
"cryptography",
]
license = "Apache-2.0"
repository = "https://github.com/defenseunicorns/peat-mesh"
[features]
automerge-backend = [
"automerge",
"iroh",
"iroh-blobs",
"redb",
"lru",
"negentropy",
"rand",
"tokio-stream",
]
bluetooth = ["dep:peat-btle"]
broker = [
"axum",
"tower",
"tower-http",
]
default = []
kubernetes = [
"kube",
"k8s-openapi",
"rustls",
]
lite-bridge = [
"log",
"dep:peat-lite",
]
node = [
"automerge-backend",
"broker",
"kubernetes",
"k8s-openapi/v1_32",
"tracing-subscriber",
"lite-bridge",
]
[lib]
name = "peat_mesh"
path = "src/lib.rs"
[[bin]]
name = "peat-mesh-node"
path = "src/bin/peat-mesh-node.rs"
required-features = ["node"]
[[example]]
name = "basic_mesh"
path = "examples/basic_mesh.rs"
[[example]]
name = "broker_service"
path = "examples/broker_service.rs"
required-features = [
"automerge-backend",
"broker",
]
[[example]]
name = "document_sync"
path = "examples/document_sync.rs"
required-features = ["automerge-backend"]
[[test]]
name = "dual_active_transport_e2e"
path = "tests/dual_active_transport_e2e.rs"
[[test]]
name = "gc_tombstone_integration"
path = "tests/gc_tombstone_integration.rs"
[[test]]
name = "hierarchy_e2e"
path = "tests/hierarchy_e2e.rs"
[[test]]
name = "metrics_integration_test"
path = "tests/metrics_integration_test.rs"
[[test]]
name = "negentropy_stress_test"
path = "tests/negentropy_stress_test.rs"
[[test]]
name = "partition_integration_test"
path = "tests/partition_integration_test.rs"
[[test]]
name = "topology_manager_e2e"
path = "tests/topology_manager_e2e.rs"
[[test]]
name = "transport_failover_chaos_test"
path = "tests/transport_failover_chaos_test.rs"
[dependencies.anyhow]
version = "1"
[dependencies.async-trait]
version = "0.1"
[dependencies.automerge]
version = "0.7.1"
optional = true
[dependencies.axum]
version = "0.7"
features = [
"macros",
"ws",
"multipart",
]
optional = true
[dependencies.base64]
version = "0.22"
[dependencies.chacha20poly1305]
version = "0.10"
[dependencies.chrono]
version = "0.4"
features = ["serde"]
[dependencies.ed25519-dalek]
version = "2"
features = ["rand_core"]
[dependencies.futures]
version = "0.3"
[dependencies.hex]
version = "0.4"
[dependencies.hkdf]
version = "0.12"
[dependencies.hmac]
version = "0.12"
[dependencies.iroh]
version = "0.97"
features = ["address-lookup-mdns"]
optional = true
[dependencies.iroh-blobs]
version = "0.99"
optional = true
[dependencies.k8s-openapi]
version = "0.24"
optional = true
default-features = false
[dependencies.kube]
version = "0.98"
features = [
"runtime",
"client",
"derive",
"rustls-tls",
]
optional = true
default-features = false
[dependencies.log]
version = "0.4"
optional = true
[dependencies.lru]
version = "0.16.3"
optional = true
[dependencies.mdns-sd]
version = "0.11"
[dependencies.negentropy]
version = "0.5"
optional = true
[dependencies.peat-btle]
version = "0.2"
optional = true
[dependencies.peat-lite]
version = "0.2"
optional = true
default-features = false
[dependencies.rand]
version = "0.9"
optional = true
[dependencies.rand_core]
version = "0.6"
features = ["getrandom"]
[dependencies.redb]
version = "2.4"
optional = true
[dependencies.rustls]
version = "0.23"
features = [
"ring",
"logging",
"std",
"tls12",
]
optional = true
default-features = false
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.sha2]
version = "0.10"
[dependencies.subtle]
version = "2.6"
[dependencies.thiserror]
version = "1"
[dependencies.tokio]
version = "1"
features = ["full"]
[dependencies.tokio-stream]
version = "0.1"
optional = true
[dependencies.tokio-util]
version = "0.7"
[dependencies.toml]
version = "0.8"
[dependencies.tower]
version = "0.4"
features = ["util"]
optional = true
[dependencies.tower-http]
version = "0.5"
features = [
"cors",
"trace",
"timeout",
]
optional = true
[dependencies.tracing]
version = "0.1"
[dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]
optional = true
[dependencies.uuid]
version = "1.0"
features = [
"v4",
"serde",
]
[dependencies.x25519-dalek]
version = "2"
features = ["static_secrets"]
[dev-dependencies.automerge]
version = "0.7.1"
[dev-dependencies.futures-util]
version = "0.3"
[dev-dependencies.http-body-util]
version = "0.1"
[dev-dependencies.k8s-openapi]
version = "0.24"
features = ["v1_32"]
[dev-dependencies.tempfile]
version = "3.13"
[dev-dependencies.tokio]
version = "1"
features = [
"full",
"test-util",
"macros",
]
[dev-dependencies.tokio-tungstenite]
version = "0.24"
[dev-dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]