Qt Bluetooth alternative

Keep Qt. Replace Qt Bluetooth.

SimpleBLE replaces the Bluetooth layer under your Qt application and leaves the rest of Qt in place. You get one BLE API on Windows, macOS, Linux, iOS, and Android, peripheral role included, from a team whose product is Bluetooth.

Kober Engineering
InsuLearn
Meta
Fender
Honeywell
Bionic Labs
Sona
SWT
Moon Smart Focus
Lewitt
Medra
Desko
g.tec
IXI
Innovision
Moonlighting Industries
Kober Engineering
InsuLearn
Meta
Fender
Honeywell
Bionic Labs
Sona
SWT
Moon Smart Focus
Lewitt
Medra
Desko
g.tec
IXI
Innovision
Moonlighting Industries
Kober Engineering
InsuLearn
Meta
Fender
Honeywell
Bionic Labs
Sona
SWT
Moon Smart Focus
Lewitt
Medra
Desko
g.tec
IXI
Innovision
Moonlighting Industries
Comparison

Qt Bluetooth, SimpleBLE, and native APIs compared

A Qt application can reach Bluetooth Low Energy three ways. This is how they differ for a commercial product.

Qt Bluetooth, SimpleBLE, and native APIs compared
SimpleBLEC++ libraryWindows, macOS, Linux, iOS, AndroidEvery platform, Windows includedC++, C, Python, C#, Java, Rust, and moreServices, command-line tools, and test scripts, with no event loopSource-available (BUSL 1.1); one commercial license per company
Qt BluetoothQt framework moduleWindows, macOS, Linux, iOS, AndroidAndroid, iOS, Linux, macOS. Not WindowsC++ and QML; Python through PySide6Runs inside a Qt event loopLGPLv3, GPLv2, or a Qt commercial license
Native OS APIsWinRT, CoreBluetooth, BlueZ, AndroidWindows, macOS, Linux, iOS, Android, each with its own APIYes, through each platform's own APIC++/WinRT, Swift or Objective-C, D-Bus, Kotlin or JavaYesIncluded with each operating system
The options

The three ways to do BLE in a Qt app

SimpleBLE

SimpleBLE is a C++ Bluetooth Low Energy library with one API on Windows, macOS, Linux, iOS, and Android. It sits under your Qt application: forward its callbacks as signals, and the rest of your code keeps working with QObjects. The same backend serves C, Python, C#, Java, Rust, and other languages, so your Qt product, test harnesses, and manufacturing tools share one Bluetooth foundation. The team that builds it supports commercial customers directly.

Qt Bluetooth

Qt Bluetooth is the Bluetooth module of the Qt framework. It supports the BLE central role on all five platforms and the peripheral role on Android, iOS, Linux, and macOS, but not on Windows. It is available under LGPLv3, GPLv2, or a Qt commercial license, and it runs inside the Qt event loop. Bluetooth is one module of many in Qt; in SimpleBLE, it is the whole product.

Native OS APIs

Each operating system has its own Bluetooth API: WinRT on Windows, CoreBluetooth on macOS and iOS, BlueZ over D-Bus on Linux, and the Android Bluetooth API. Writing against them directly costs nothing in licenses and takes one implementation per platform, each with its own threading, errors, and lifecycle. SimpleBLE is that work, done once and maintained for you.

Get started

Plain C++, with signals when you want them

SimpleBLE calls are plain C++. Forward its callbacks as signals, and your QObjects work with Bluetooth the way they work with everything else.

#include <iostream>
#include <simpleble/SimpleBLE.h>

auto adapter = SimpleBLE::Adapter::get_adapters().front();

adapter.set_callback_on_scan_found([](SimpleBLE::Peripheral peripheral) {
    std::cout << peripheral.identifier() << " " << peripheral.address() << std::endl;
});
adapter.scan_for(5000);
Why SimpleBLE

What SimpleBLE gives your Qt application

Scope

Keep your Qt app

Replace only the Bluetooth layer. Your UI and architecture stay as they are.

Windows

Peripheral on Windows too

Advertise and serve GATT on all five platforms with one API.

Languages

One foundation for every tool

Product code, test harnesses, and factory tools share one backend, in C++, Python, C#, and more.

Independence

No event loop required

Runs in services, CLI tools, and test scripts without a Qt application.

Hardware

Dongl on desktop

Plug in a Dongl for a dedicated radio on Windows, macOS, or Linux. Same code.

Support

Bluetooth has an owner

The team behind every SimpleBLE backend works directly with commercial customers.

Try SimpleBLE under your Qt application

Start with one flow: scan, connect, discover services, and exchange data. Evaluation needs no license, and for commercial use one agreement covers your whole company, with no per-seat, per-device, or royalty fees.

Frequently
asked questions

No. SimpleBLE replaces Qt Bluetooth underneath the application. Your Qt UI, application architecture, and other Qt modules stay in place.

No. Qt's documentation lists the Bluetooth LE peripheral role on Android, iOS, Linux, and macOS, not on Windows. SimpleBLE hosts a peripheral on all five platforms, Windows included.

Wrap the peripheral in a QObject and forward SimpleBLE callbacks as signals with QMetaObject::invokeMethod. The rest of the application keeps its existing signals and slots.

Yes. The same SimpleBLE backend is available from C++, C, Python, C#, Java, Rust, and other languages, so validation, manufacturing, and support tools share one foundation with the product.

Replace one representative flow first: scanning, connecting, discovering services, and exchanging data. Evaluation needs no license or sales call.

SimpleBLE is source-available under the Business Source License 1.1 and free for non-commercial use. Commercial use needs a license, and one agreement covers your whole legal entity, with no per-seat, per-device, or royalty fees.