A Combine-based wrapper for Apple's CoreBluetooth framework, enabling reactive Bluetooth operations with publishers instead of delegates.
CombineCoreBluetooth is a Swift library that wraps Apple's CoreBluetooth framework with Combine publishers, enabling reactive Bluetooth communication. It solves the problem of managing delegate callbacks and manual filtering by providing a stream-based API for scanning peripherals, reading characteristics, and handling Bluetooth events. This allows developers to integrate Bluetooth functionality using familiar Combine operators and patterns.
iOS, macOS, tvOS, and watchOS developers building Bluetooth-enabled apps who want to use Combine for reactive state management and event handling. It's ideal for Swift developers already leveraging Combine in their codebase.
Developers choose CombineCoreBluetooth because it replaces verbose delegate patterns with a declarative, composable API, reducing boilerplate and improving code readability. Its tight integration with Apple's native frameworks ensures compatibility and performance while providing a modern reactive programming experience.
A wrapper API for CoreBluetooth using Combine Publishers
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Converts CoreBluetooth's delegate-based operations into Combine publishers, enabling declarative code and easy composition with other reactive streams, as shown in scanning and reading examples.
Publishers automatically filter Bluetooth events by service and characteristic IDs, reducing boilerplate code for matching responses, which the README highlights as a key simplification.
Provides wrapped versions of CoreBluetooth types like CentralManager and Peripheral with Combine-centric methods, ensuring better integration with Swift's type system and compile-time safety.
Follows a dependency design philosophy that avoids maintaining extra state, giving developers full control over Bluetooth lifecycle, as inspired by pointfree.co's approach.
The README admits peripheral functionality is less tested, making it risky for production apps that need to act as Bluetooth servers or rely on dual-role features.
Tightly coupled to Apple's Combine framework, so it's unsuitable for projects using alternative reactive frameworks like RxSwift or avoiding reactive programming entirely.
Requires Swift 5.9+ and Xcode 15+, which excludes older projects and can slow adoption for teams on slower upgrade cycles or maintaining legacy apps.