[package] name = "btleplug" version = "0.11.6" authors = ["Nonpolynomial, LLC "] license = "MIT/Apache-2.0/BSD-3-Clause" repository = "https://github.com/deviceplug/btleplug" homepage = "https://github.com/deviceplug/btleplug" edition = "2021" description = """ A Cross-Platform Rust Bluetooth Low Energy (BLE) GATT library. """ readme = "README.md" keywords = ["bluetooth", "BLE", "bluez", "uwp", "corebluetooth"] categories = ["hardware-support"] [lib] name = "btleplug" path = "src/lib.rs" [features] serde = ["uuid/serde", "serde_cr", "serde_bytes"] [dependencies] async-trait = "0.1.83" log = "0.4.22" bitflags = "2.6.0" thiserror = "1.0.64" uuid = "1.10.0" serde_cr = { package = "serde", version = "1.0.210", features = ["derive"], default-features = false, optional = true } serde_bytes = { version = "0.11.15", optional = true } dashmap = "6.1.0" futures = "0.3.31" static_assertions = "1.1.0" # rt feature needed for block_on in macOS internal thread tokio = { version = "1.40.0", features = ["sync", "rt"] } tokio-stream = { version = "0.1.16", features = ["sync"] } [target.'cfg(target_os = "linux")'.dependencies] dbus = "0.9.7" bluez-async = "0.7.2" [target.'cfg(target_os = "android")'.dependencies] jni = "0.19.0" once_cell = "1.20.2" jni-utils = "0.1.1" [target.'cfg(target_vendor = "apple")'.dependencies] objc2 = "0.5.2" objc2-foundation = { version = "0.2.2", features = [ "block2", "NSArray", "NSData", "NSDictionary", "NSEnumerator", "NSError", "NSObject", "NSString", "NSUUID", "NSValue", ] } objc2-core-bluetooth = { version = "0.2.2", features = [ "CBAdvertisementData", "CBAttribute", "CBCentralManager", "CBCentralManagerConstants", "CBCharacteristic", "CBDescriptor", "CBManager", "CBPeer", "CBPeripheral", "CBService", "CBUUID", ] } [target.'cfg(target_os = "windows")'.dependencies] windows = { version = "0.57.0", features = ["Devices_Bluetooth", "Devices_Bluetooth_GenericAttributeProfile", "Devices_Bluetooth_Advertisement", "Devices_Radios", "Foundation_Collections", "Foundation", "Storage_Streams"] } [dev-dependencies] rand = "0.8.5" pretty_env_logger = "0.5.0" tokio = { version = "1.40.0", features = ["macros", "rt", "rt-multi-thread"] } serde_json = "1.0.128"