ockam_transport_ble 0.22.0

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

[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.61.0", default_features = false }
ockam_node = { path = "../ockam_node", version = "^0.64.0", default_features = false }
ockam_transport_core = { path = "../ockam_transport_core", version = "^0.34.0", default_features = false }

futures = { version = "0.3.19", 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.9.0", optional = true }
uuid = { version = "0.8.2", 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 }
nb = { version = "1.0.0", optional = true }
heapless = { version = "0.7.7", optional = true }

# Processor atsame: TODO move this into its own "Ockam Addon" crate
atsame54_xpro = { version = "0.2.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.9.0", features = ["rt", "stm32f407"], optional = true }
stm32h7xx-hal = { version = "0.9.0", features = ["rt", "stm32h747cm7"], optional = true }

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

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

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

[dev-dependencies]
ockam_identity = { path = "../ockam_identity", version = "^0.55.0" }
ockam_vault = { path = "../ockam_vault", version = "^0.57.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" ]