A modern Bluetooth Low Energy framework for Swift that uses distributed actors and @Resolvable protocols for type-safe communication.
Bleu is a modern Bluetooth Low Energy framework for Swift that uses distributed actors and @Resolvable protocols to enable type-safe communication between BLE devices. It solves the complexity of traditional BLE APIs by allowing developers to define protocols with distributed methods and call them over BLE as if they were local functions, eliminating manual serialization and boilerplate code.
Swift developers building Bluetooth Low Energy applications for Apple platforms (iOS, macOS, watchOS, tvOS) who want a type-safe, high-level API that abstracts away low-level BLE complexities.
Developers choose Bleu because it provides a revolutionary approach to BLE communication using Swift's native distributed actor system, offering zero-boilerplate, protocol-oriented design that makes BLE development as simple as defining a protocol and calling methods, with full type safety and modern Swift concurrency support.
BLE (Bluetooth LE) for U🎁 Bleu is the best in the Bluetooth library.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Leverages @Resolvable protocols to enable zero-boilerplate communication, allowing developers to define distributed methods and call them over BLE as if local, as demonstrated in the TemperatureSensor example where getTemperature() is invoked seamlessly.
Uses Swift's native distributed actor system for transparent RPC, ensuring thread safety and automatic serialization, which simplifies complex BLE interactions by abstracting low-level APIs into type-safe remote method calls.
Includes a protocol-oriented testing architecture with mock implementations and CoreBluetoothEmulator integration, enabling full CI/CD testing without real BLE devices or TCC permissions, as detailed in the testing guide.
Fully integrated with async/await and AsyncStream, supporting real-time data streaming and leveraging Swift 6's concurrency features for efficient performance, shown in examples like streamHeartRate() with asynchronous data flow.
Requires iOS 18+, macOS 15+, watchOS 11+, tvOS 18+, and Swift 6.0+, which excludes support for older devices and complicates adoption in projects with legacy codebases or cross-platform needs.
The distributed actor model and @Resolvable protocols, while powerful, demand a deep understanding of Swift's concurrency and distributed systems, posing a barrier for developers accustomed to traditional BLE APIs.
Built exclusively on CoreBluetooth, it cannot natively communicate with BLE devices on other platforms, restricting its use in cross-platform IoT ecosystems and requiring bridging layers for interoperability.