# 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-btle"
version = "0.3.1"
authors = ["Kit Plummer <kitplummer@defenseunicorns.com>"]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Bluetooth Low Energy mesh transport for Peat Protocol"
readme = "README.md"
keywords = [
    "bluetooth",
    "ble",
    "mesh",
    "peat",
    "tactical",
]
categories = [
    "network-programming",
    "embedded",
]
license = "Apache-2.0"
repository = "https://github.com/defenseunicorns/peat-btle"

[package.metadata.docs.rs]
features = ["linux"]

[features]
android = [
    "uniffi",
    "dep:tokio",
    "dep:android_logger",
]
coded-phy = []
default = ["std"]
embedded = []
esp32 = [
    "embedded",
    "std",
    "dep:esp-idf-svc",
    "dep:esp-idf-hal",
]
extended-adv = []
ios = [
    "dep:objc2",
    "dep:block2",
    "dep:tokio",
    "dep:objc2-foundation",
    "dep:objc2-core-bluetooth",
]
legacy-chat = []
linux = [
    "dep:bluer",
    "dep:tokio",
    "dep:tokio-stream",
]
macos = [
    "dep:objc2",
    "dep:block2",
    "dep:tokio",
    "dep:objc2-foundation",
    "dep:objc2-core-bluetooth",
]
mesh-translator = [
    "std",
    "dep:peat-mesh",
    "dep:serde",
    "dep:serde_json",
    "dep:anyhow",
    "dep:postcard",
    "dep:tracing",
]
std = [
    "thiserror/std",
    "uuid/std",
]
transport-only = ["std"]
uniffi = ["dep:uniffi"]
windows = [
    "dep:windows",
    "dep:tokio",
]

[lib]
name = "peat_btle"
crate-type = [
    "rlib",
    "cdylib",
]
path = "src/lib.rs"

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

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

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

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

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

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

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

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

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

[[example]]
name = "range_test_node_macos"
path = "examples/range_test_node_macos.rs"
required-features = ["macos"]

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

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

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

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

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

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

[dependencies.android_logger]
version = "0.14"
optional = true

[dependencies.anyhow]
version = "1"
optional = true

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

[dependencies.bitflags]
version = "2.6"

[dependencies.blake3]
version = "1.5"

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

[dependencies.bluer]
version = "0.17"
features = ["bluetoothd"]
optional = true

[dependencies.chacha20poly1305]
version = "0.10"

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

[dependencies.esp-idf-hal]
version = "0.45"
optional = true

[dependencies.esp-idf-svc]
version = "0.50"
optional = true

[dependencies.hashbrown]
version = "0.15"

[dependencies.hkdf]
version = "0.12"

[dependencies.log]
version = "0.4"

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

[dependencies.objc2-core-bluetooth]
version = "0.2"
features = ["all"]
optional = true

[dependencies.objc2-foundation]
version = "0.2"
features = [
    "NSRunLoop",
    "NSDate",
    "NSString",
    "NSObjCRuntime",
]
optional = true

[dependencies.peat-mesh]
version = "=0.9.0-rc.4"
optional = true
default-features = false

[dependencies.postcard]
version = "1"
features = ["alloc"]
optional = true

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

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

[dependencies.serde_json]
version = "1"
optional = true

[dependencies.sha2]
version = "0.10"

[dependencies.spin]
version = "0.9"
features = ["rwlock"]
default-features = false

[dependencies.thiserror]
version = "2.0"
default-features = false

[dependencies.tokio]
version = "1.42"
features = [
    "sync",
    "time",
    "macros",
    "rt-multi-thread",
]
optional = true

[dependencies.tokio-stream]
version = "0.1"
optional = true

[dependencies.tracing]
version = "0.1"
optional = true

[dependencies.uniffi]
version = "0.31"
optional = true

[dependencies.uuid]
version = "1.11"
default-features = false

[dependencies.windows]
version = "0.58"
features = [
    "Devices_Bluetooth",
    "Devices_Bluetooth_Advertisement",
    "Devices_Bluetooth_GenericAttributeProfile",
    "Foundation",
    "Foundation_Collections",
    "Storage_Streams",
    "implement",
]
optional = true

[dependencies.x25519-dalek]
version = "2.0"
features = ["static_secrets"]

[dev-dependencies.base64]
version = "0.22"

[dev-dependencies.env_logger]
version = "0.11"

[dev-dependencies.peat-lite]
version = "0.2.0"

[dev-dependencies.tokio]
version = "1.42"
features = [
    "rt-multi-thread",
    "macros",
    "signal",
]

[dev-dependencies.tokio-test]
version = "0.4"

[build-dependencies.uniffi]
version = "0.31"
features = ["build"]
