A reactive Bluetooth library for iOS and macOS, providing a clean RxSwift API for BLE device interaction in both Central and Peripheral modes.
RxBluetoothKit is a reactive Bluetooth library for Apple platforms that simplifies interaction with Bluetooth Low Energy (BLE) devices. It wraps Apple's CoreBluetooth framework with RxSwift to provide observable streams for all Bluetooth operations, transforming the complex callback-based API into a clean, declarative programming model. The library supports both Central and Peripheral modes, enabling developers to build more readable, reliable, and maintainable BLE applications.
iOS, macOS, watchOS, and tvOS developers who need to integrate BLE functionality into their Swift applications and are already using or willing to adopt RxSwift for reactive programming. It's particularly suited for those frustrated with the verbosity and complexity of CoreBluetooth's delegate patterns.
Developers choose RxBluetoothKit because it replaces CoreBluetooth's callback-heavy API with a consistent reactive interface using RxSwift observables, significantly reducing boilerplate and improving code clarity. Its unified cross-platform support across all Apple operating systems and comprehensive feature set for both Central and Peripheral roles provide a robust alternative to managing CoreBluetooth directly.
iOS & OSX Bluetooth library for RxSwift
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses RxSwift to provide observable streams for all operations, enabling declarative code that reduces callback boilerplate, as demonstrated in the concise example snippet.
Supports both Central and Peripheral modes with full BLE functionalities like scanning, connecting, reading/writing, and advertising, covering all CoreBluetooth capabilities.
Offers a unified API across iOS, macOS, watchOS, and tvOS, allowing consistent BLE development on all Apple operating systems.
Includes helper methods to simplify common workflows such as connection establishment and service discovery, reducing code complexity and boilerplate.
Forces adoption of RxSwift, which can bloat projects and requires team familiarity with reactive programming, adding complexity for those not already using it.
Major version updates, like the jump from 4.x to 5.x, require specific migration guidelines, indicating breaking changes that can disrupt existing codebases.
Only supports Apple platforms, making it unsuitable for projects targeting Android or other ecosystems, which limits cross-platform mobile development.