peat-mesh 0.7.0

Peat mesh networking library with CRDT sync, transport security, and topology management
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[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"]