# 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-protocol"
version = "0.9.0-rc.20"
authors = ["Kit Plummer <kitplummer@defenseunicorns.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
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"
readme = "README.md"
license = "Apache-2.0"
repository = "https://github.com/defenseunicorns/peat"

[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
    "--cfg",
    "docsrs",
]
keywords = [
    "peat",
    "protocol",
    "mesh",
    "crdt",
    "coordination",
]
categories = ["network-programming"]

[features]
automerge-backend = [
    "automerge",
    "redb",
    "lru",
    "toml",
    "rand",
    "futures-lite",
    "negentropy",
    "peat-mesh/automerge-backend",
]
bluetooth = [
    "peat-btle",
    "peat-mesh/bluetooth",
]
default = ["automerge-backend"]
lite-transport = [
    "log",
    "peat-mesh/lite-bridge",
]
relay-n0-hosted = []

[lib]
name = "peat_protocol"
path = "src/lib.rs"

[[example]]
name = "lite_aggregator"
path = "examples/lite_aggregator.rs"

[[example]]
name = "p2p_mesh_baseline"
path = "examples/p2p_mesh_baseline.rs"

[[example]]
name = "producer_only_baseline"
path = "examples/producer_only_baseline.rs"

[[example]]
name = "secure_node"
path = "examples/secure_node.rs"

[[example]]
name = "traditional_baseline"
path = "examples/traditional_baseline.rs"

[[test]]
name = "automerge_backend_integration"
path = "tests/automerge_backend_integration.rs"

[[test]]
name = "automerge_iroh_sync_e2e"
path = "tests/automerge_iroh_sync_e2e.rs"

[[test]]
name = "backend_agnostic_e2e"
path = "tests/backend_agnostic_e2e.rs"

[[test]]
name = "blob_store_tests"
path = "tests/blob_store_tests.rs"

[[test]]
name = "discovery_e2e"
path = "tests/discovery_e2e.rs"

[[test]]
name = "event_routing_integration"
path = "tests/event_routing_integration.rs"

[[test]]
name = "hierarchical_sim_test"
path = "tests/hierarchical_sim_test.rs"

[[test]]
name = "hierarchical_sync_e2e"
path = "tests/hierarchical_sync_e2e.rs"

[[test]]
name = "iroh_blob_sync_e2e"
path = "tests/iroh_blob_sync_e2e.rs"

[[test]]
name = "iroh_file_distribution_e2e"
path = "tests/iroh_file_distribution_e2e.rs"

[[test]]
name = "iroh_minimal_connection"
path = "tests/iroh_minimal_connection.rs"

[[test]]
name = "issue_229_sync_e2e"
path = "tests/issue_229_sync_e2e.rs"

[[test]]
name = "mdns_discovery_e2e"
path = "tests/mdns_discovery_e2e.rs"

[[test]]
name = "mdns_verify"
path = "tests/mdns_verify.rs"

[[test]]
name = "models_integration"
path = "tests/models_integration.rs"

[[test]]
name = "multi_node_mesh_e2e"
path = "tests/multi_node_mesh_e2e.rs"

[[test]]
name = "origin_threading_e2e"
path = "tests/origin_threading_e2e.rs"

[[test]]
name = "peer_discovery_e2e"
path = "tests/peer_discovery_e2e.rs"

[[test]]
name = "startup_optimization_e2e"
path = "tests/startup_optimization_e2e.rs"

[[test]]
name = "tombstone_sync_e2e"
path = "tests/tombstone_sync_e2e.rs"

[[test]]
name = "transitive_gossip_e2e"
path = "tests/transitive_gossip_e2e.rs"

[[bench]]
name = "cap_benchmarks"
path = "benches/cap_benchmarks.rs"
harness = false

[dependencies.anyhow]
version = "1"

[dependencies.argon2]
version = "0.5"

[dependencies.async-trait]
version = "0.1"

[dependencies.automerge]
version = "0.7.1"
optional = true

[dependencies.base64]
version = "0.22"

[dependencies.bitflags]
version = "2"

[dependencies.chrono]
version = "0.4"
features = ["serde"]

[dependencies.dotenvy]
version = "0.15"

[dependencies.ed25519-dalek]
version = "2"
features = ["rand_core"]

[dependencies.futures-lite]
version = "2"
optional = true

[dependencies.hex]
version = "0.4"

[dependencies.hkdf]
version = "0.12"

[dependencies.hmac]
version = "0.12"

[dependencies.log]
version = "0.4"
optional = true

[dependencies.lru]
version = "0.16.3"
optional = true

[dependencies.negentropy]
version = "0.5"
optional = true

[dependencies.peat-btle]
version = ">=0.4.0, <0.4.1"
optional = true

[dependencies.peat-mesh]
version = ">=0.9.0-rc.29, <0.9.1"
default-features = false

[dependencies.peat-schema]
version = "=0.9.0-rc.20"

[dependencies.postcard]
version = "1"
features = ["alloc"]
default-features = false

[dependencies.prost]
version = "0.13"

[dependencies.quick-xml]
version = "0.37"
features = ["serialize"]

[dependencies.rand]
version = "0.9"
optional = true

[dependencies.rand_core]
version = "0.6"
features = ["getrandom"]

[dependencies.redb]
version = "2.4"
optional = true

[dependencies.serde]
version = "1"
features = ["derive"]

[dependencies.serde_json]
version = "1"

[dependencies.sha2]
version = "0.10"

[dependencies.subtle]
version = "2.6"

[dependencies.tempfile]
version = "3.13"

[dependencies.thiserror]
version = "1"

[dependencies.tokio]
version = "1"
features = ["full"]

[dependencies.toml]
version = "0.8"
optional = true

[dependencies.tracing]
version = "0.1"

[dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]

[dependencies.uuid]
version = "1"
features = [
    "v4",
    "serde",
]

[dev-dependencies.criterion]
version = "0.5"
features = ["html_reports"]

[dev-dependencies.iroh]
version = "=1.0.0-rc.0"
features = ["tls-aws-lc-rs"]
default-features = false

[dev-dependencies.proptest]
version = "1"

[dev-dependencies.serial_test]
version = "3.1"

[dev-dependencies.tempfile]
version = "3.13"

[dev-dependencies.tokio]
version = "1"
features = [
    "full",
    "test-util",
]
