A comprehensive Swift library suite implementing Bluetooth SIG specifications for cross-platform development.
Bluetooth is a Swift library suite that implements Bluetooth SIG specifications and protocols for cross-platform development. It provides foundational support for both Bluetooth Classic (BR/EDR) and Bluetooth Low Energy, enabling developers to build Bluetooth applications across macOS, iOS, Linux, Android, WebAssembly, and embedded systems. The library solves the problem of fragmented Bluetooth development by offering a consistent Swift API that works with native platform backends.
Swift developers building Bluetooth applications across multiple platforms, including iOS/macOS app developers, Linux server developers, Android app developers, and embedded systems engineers working with microcontrollers.
Developers choose this library because it provides a pure Swift implementation of Bluetooth protocols with consistent APIs across all supported platforms, eliminating the need to learn different Bluetooth stacks for each target environment. Its comprehensive protocol support and extensive platform compatibility make it uniquely valuable for cross-platform Bluetooth development.
Swift Bluetooth library
Works across macOS, iOS, Linux, Android, WebAssembly, and embedded systems like ESP32, as detailed in the platform table, providing a unified Swift API for diverse environments.
Implements core Bluetooth SIG specifications including GAP, GATT, HCI, and L2CAP, supporting both Classic and Low Energy protocols for robust Bluetooth development.
Leverages platform-specific stacks like CoreBluetooth for Apple and BlueZ for Linux, ensuring optimal performance while maintaining a consistent API, as shown in the backend library mappings.
Supports microcontroller platforms such as Pi Pico W and nRF52840 through integrations like BTStack and Zephyr, making it ideal for IoT and embedded Bluetooth projects.
Requires managing multiple dependent packages for different platforms (e.g., DarwinGATT, BluetoothLinux), increasing integration complexity and potential dependency issues.
Primarily provides foundational protocol APIs without high-level abstractions, so developers must build user-facing features like device pairing or UI components from scratch.
As an open-source project, it lacks formal support channels and may have slower updates or fewer resources compared to vendor-backed SDKs, posing risks for critical production use.
Python interface to Bluetooth LE on Linux
Tools for developers to create truly open IoT products using standard JavaScript on low cost microcontrollers.
Bumble is a comprehensive Bluetooth stack implemented entirely in Python, supporting both Bluetooth Low Energy (BLE) and Bluetooth Classic (BR/EDR) protocols. It enables developers to build Bluetooth applications, perform testing, and conduct experiments without relying on platform-specific native stacks. ## Key Features - **Full Protocol Support** — Implements common Bluetooth protocols including GAP, L2CAP, ATT, GATT, SMP, SDP, RFCOMM, HFP, HID, and A2DP. - **Multiple Radio Interfaces** — Works with physical radios via HCI over USB, UART, or Linux VHCI, as well as virtual radios like the Android emulator's Bluetooth support. - **Python Implementation** — Entirely written in Python, making it accessible and extensible for developers familiar with the language. - **Comprehensive Examples** — Includes a wide range of example scripts and tools to demonstrate functionality and accelerate development. ## Philosophy Bumble aims to provide a flexible, open-source Bluetooth stack that prioritizes experimentation and prototyping, enabling developers to explore Bluetooth capabilities without production constraints.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.