[package]
edition = "2021"
name = "peat-btle"
version = "0.4.0"
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",
"translator-codec",
"peat-lite-frame",
"dep:tokio",
"dep:android_logger",
]
coded-phy = []
default = ["std"]
embedded = []
esp32 = [
"embedded",
"std",
"translator-codec",
"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",
]
peat-lite-frame = [
"std",
"dep:peat-lite",
]
std = [
"thiserror/std",
"uuid/std",
]
translator-codec = [
"std",
"dep:serde",
"dep:serde_json",
"dep:postcard",
"dep:anyhow",
]
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 = "peat_lite_uniffi_e2e"
path = "tests/peat_lite_uniffi_e2e.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"
[[test]]
name = "state_propagation"
path = "tests/state_propagation.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-lite]
version = "0.2.5"
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.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.5"
[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"]