Bluetooth is a Swift package with multiple libraries supporting the Bluetooth SIG specifications and protocols, including GAP, GATT, HCI, L2CAP, Classic (BR/EDR) and Low Energy support.
import Bluetooth
let uuid128bit = BluetoothUUID(rawValue: "60F14FE2-F972-11E5-B84F-23E070D5A8C7")
let uuid16bit = BluetoothUUID(rawValue: "FEA9")
let address = BluetoothAddress(rawValue: "00:1A:7D:DA:71:13")
Bluetooth is available as a Swift Package Manager package. To use it, add the following dependency in your Package.swift
:
.package(url: "https://github.com/PureSwift/Bluetooth.git", branch: "master"),
and to your target, add Bluetooth
to your dependencies. You can then import Bluetooth
to get access to Bluetooth functionality.
Support for different operating systems and platforms is spread across a suite of Swift packages supporting each which all depend on this package as a foundation. It currently supports WebAssembly (Chrome, Edge), Android, Embedded Swift, desktop Linux (Debian, Fedora, Arch), Buildroot and Yocto Linux.
Platform | Roles | Backend | Library |
---|---|---|---|
macOS, iOS, watchOS, tvOS, visionOS | Central, Peripheral | CoreBluetooth | DarwinGATT |
Linux | Central, Peripheral | BlueZ | BluetoothLinux, GATT |
Android | Central | Java Native Interface | AndroidBluetooth |
WebAssembly | Central | Bluetooth Web API | BluetoothWeb |
Pi Pico W | Peripheral | BlueKitchen BTStack | BTStack |
ESP32 | Peripheral | Apache NimBLE | NimBLE |
nRF52840 | Peripheral | Zephyr SDK | Zephyr |
Read the documentation here. Documentation can be generated with DocC.
Bluetooth is released under the MIT license. See LICENSE for details.