ockam_transport_ble 0.44.0

Bluetooth Low Energy (BLE) Transport for the Ockam Routing Protocol.
Documentation
[package]
name = "ockam_transport_ble"
version = "0.44.0"
authors = ["Ockam Developers"]
autoexamples = false
categories = ["cryptography", "asynchronous", "authentication", "embedded", "network-programming"]
edition = "2021"
exclude = [
  "DEVELOP.md",
  "LICENSE",
]
homepage = "https://github.com/build-trust/ockam"
keywords = ["ockam", "crypto", "network", "bluetooth", "ble"]
license = "Apache-2.0"
publish = true
readme = "README.md"
repository = "https://github.com/build-trust/ockam/tree/develop/implementations/rust/ockam/ockam_transport_ble"
description = """
Bluetooth Low Energy (BLE) Transport for the Ockam Routing Protocol.
"""

[features]
default = ["std", "use_btleplug"]

# Feature (enabled by default): "std" enables functionality expected to
# be available on a standard platform.
std = [
  "ockam_core/std",
  "ockam_node/std",
  "ockam_transport_core/std",
  "tracing/default",
  "uuid",
]

# Feature: "no_std" enables functionality required for platforms
# without the standard library.
no_std = [
  "ockam_core/no_std",
  "ockam_node/no_std",
  "ockam_transport_core/no_std",
  "heapless",
  "nb",
]

# Feature: "alloc" enables support for heap allocation on "no_std"
# platforms, requires nightly.
alloc = [
  "ockam_core/alloc",
  "ockam_node/alloc",
  "ockam_transport_core/alloc",
]

# Feature: Bare-metal support for ST Micro BlueNRG-MS BLE radios (server-only)
use_bluetooth_hci = ["bluetooth-hci", "bluenrg"]

# Feature: Multi-platform support for BLE radios (client-only)
use_btleplug = ["btleplug"]

# Processor Feature: TODO move this into its own "Ockam Addon" crate
atsame54 = [
  "embedded-hal", # TODO atsame54_xpro declares hal::hal as private
  "atsame54_xpro",
]

# Processor Feature: TODO move this into its own "Ockam Addon" crate
stm32f4 = [
  "embedded-hal", # TODO atsame54_xpro declares hal::hal as private
  "stm32f4xx-hal",
]

# Processor Feature: TODO move this into its own "Ockam Addon" crate
stm32h7 = [
  "embedded-hal", # TODO atsame54_xpro declares hal::hal as private
  "stm32h7xx-hal",
  "stm32-device-signature/stm32h75x",
]

# Processor Feature: TODO move this into its own "Ockam Addon" crate
pic32 = [
  "embedded-hal", # TODO pic32-hal declares hal::hal as private
  "pic32-hal",
]
pic32mx1xxfxxxb = ["pic32", "pic32-hal/pic32mx1xxfxxxb"]
pic32mx2xxfxxxb = ["pic32", "pic32-hal/pic32mx2xxfxxxb"]

[dependencies]
ockam_core = { path = "../ockam_core", version = "^0.82.0", default_features = false }
ockam_node = { path = "../ockam_node", version = "^0.85.0", default_features = false }
ockam_transport_core = { path = "../ockam_transport_core", version = "^0.55.0", default_features = false }

futures = { version = "0.3.28", default-features = false }
futures-util = { version = "0.3.19", default-features = false, features = ["alloc", "async-await-macro", "sink"] }
serde = { version = "1.0", default-features = false, features = ["derive"] }
tracing = { version = "0.1", default_features = false }

# Target os: TODO move this into its own "Ockam Addon" crate
btleplug = { version = "0.10.5", optional = true }
uuid = { version = "1.3.3", optional = true }

# Target baremetal: TODO move this into its own "Ockam Addon" crate
bluenrg = { version = "0.1.0", default-features = false, features = ["ms"], optional = true }
bluetooth-hci = { version = "0.1.0", default-features = false, features = ["version-4-1"], optional = true }
heapless = { version = "0.7.7", optional = true }
nb = { version = "1.1.0", optional = true }

# Processor atsame: TODO move this into its own "Ockam Addon" crate
atsame54_xpro = { version = "0.4.0", optional = true }
embedded-hal = { version = "0.2.3", optional = true }

# Processor stm32: TODO move this into its own "Ockam Addon" crate
stm32-device-signature = { version = "0.3.3", optional = true }
stm32f4xx-hal = { version = "0.16.0", features = ["rt", "stm32f407"], optional = true }
stm32h7xx-hal = { version = "0.14.0", features = ["rt", "stm32h747cm7"], optional = true }

# Processor pic32: TODO move this into its own "Ockam Addon" crate
pic32-hal = { version = "0.8.0", optional = true }

# Architecture ARM: TODO move this into its own "Ockam Addon" crate
[target.'cfg(target_arch = "arm")'.dependencies]
cortex-m = "0.7.7"

# Architecture RISCV: TODO move this into its own "Ockam Addon" crate
[target.'cfg(any(target_arch = "riscv32", target_arch = "riscv64"))'.dependencies]
riscv = "0.10.0"

[dev-dependencies]
ockam_identity = { path = "../ockam_identity", version = "^0.77.0" }
ockam_vault = { path = "../ockam_vault", version = "^0.78.0" }

[[example]]
name = "04-routing-over-ble-transport-initiator"
required-features = ["std", "use_btleplug"]

[[example]]
name = "05-secure-channel-over-ble-transport-initiator"
required-features = ["std", "use_btleplug"]