Releases: simpleble/simpleble
Releases · simpleble/simpleble
SimpleBLE v0.10.3
SimpleBLE v0.10.2
[0.10.2] - 2025-06-20
Changed
- (Windows) Experimental option to skip reinitializing the WinRT apartment on the main thread. Default is now to not reinitialize.
Fixed
- (Python) Fixed several deadlocks in the Python bindings related to new WinRT threading model.
SimpleBLE v0.10.1
[0.10.1] - 2025-05-30
Notes
- The Rust bindings have undergone a major rewrite of their API, towards a more idiomatic Rust style and stream-based API.
- iOS and Android do not support powering on and off the adapter. Calling these methods will not have any effect on the adapter.
- Linux does have support for powering on and off the adapter, but further architecture changes are needed to properly expose this.
- Callbacks for power on and off events are currently only supported on Windows.
- Retrieving connected peripherals is currently only supported on Windows. More backends coming soon.
Added
- Functions for powering adapters on, off and querying their power state.
- Callbacks to monitor adapter power on and off events.
- (Windows) Added support for powering adapters on and off.
- (Windows) Added support for retrieving paired peripherals.
- (Windows) Added support for retrieving connected peripherals.
- (Python) Exposed the
Adapter::power_on(),Adapter::power_off()andAdapter::is_powered()methods. - (Android) Calls to Java methods are now checked for exceptions.
- (Java) Calls to Java methods are now checked for exceptions.
- (Android) Added support for requesting a specific connection priority via configuration. (Thanks Nicole S.!)
- (MacOS) Added support for powering adapters on and off.
- (Linux) Added configurable connection and disconnection timeouts. (Thanks Kober Engineering!)
Changed
- (Windows) Calls to the WinRT backend are now executed in a separate MTA apartment by default.
- (Android) Migrated to using the
simplejnilibrary for JNI bindings. - API CHANGE: (Rust) Migrated to streams for scan and connection events.
- API CHANGE: (Rust) Migrated to streams for peripheral notifications and indications.
Fixed
- (Android) Fixed a bug where the GATT object would not be closed if a connection was lost. (Thanks Nicole S.!)
- (Rust) Fixed a race condition in the Rust bindings that would cause a crash if the adapter was deleted while a callback was in progress.
- Added missing operating system definitions for utils.
- (Linux) Use steady_clock instead of system_clock for timeout calculations. (Thanks Kober Engineering!)
Removed
- Source code of the
simpleble-bridgeproject in favor ofsimpledroidbridge.
SimpleBLE v0.9.1
[0.9.1] - 2025-04-24
Important:
- In the near future we will deprecate the
simpleble-ctarget in favor ofsimplecble, which will be a drop-in replacement for the existing C bindings. - The
simpleble-bridgeproject has been renamed tosimpledroidbridgeand can be found in the root directory of the repository.
Added
- (Android) Implemented the following API functions:
Adapter::scan_get_results()Adapter::get_paired_peripherals()Peripheral::rssi()Peripheral::tx_power()Peripheral::is_connectable()Peripheral::is_paired()Peripheral::manufacturer_data()Peripheral::advertised_services()
- (Java) Early preview of Java bindings.
- Configuration class to control the behavior of SimpleBLE internals as well as experimental features.
- SimpleCBLE: Moved SimpleBLE C bindings into a separate library.
Changed
Adapter::identifier()method is non-const, as underlying const conditions can't be guaranteed.- (Android) Callback functions are not handled on a separate, dedicated thread.
- (Windows) (Experimental) Calls to the WinRT backend can now be executed in a separate MTA apartment via feature flag.
- (Android) The
simpleble-bridgeproject has been renamed tosimpledroidbridge. - Upgraded
fmtdependency to version 11.1.4 and vendorized into the repository.
Fixed
- (Android) Some potential race conditions in the Android backend.
- (Android) Fixed handling of null objects.
- (Android)
Peripheral::address_type()andPeripheral::unpair()had to be removed due to API level limitations. - (Android) Potential duplicate callback invocations on builds with newer Android API levels.
SimpleBLE v0.9.0
[0.9.0] - 2025-01-20
Important: License has changed, please review the new license terms.
Changed
- Removed unnecessary log print in MacOS backend. (Thanks will-tm!)
- Remove builders in favor of templated approach. (Thanks jcarrano!)
- Refactor code to use abstract classes and PIMPL idiom. (Thanks jcarrano!)
SimpleBLE v0.8.1
[0.8.1] - 2024-11-05
Added
- (Android) Alpha preview of Android support.
- (SimpleDBus) Added templated version of creation and getter functions for Holder class. (Thanks lorsi96!)
Changed
- Implemented standalone ByteArray class derived from
kvn::bytearray. (Thanks tlifschitz!) - API CHANGE: Notify and Indicate callback in C bindings now receive the peripheral handle as the first argument.
Fixed
- (SimpleBluez) Fixed improper handling of non
org.Bluez.Service1objects within aorg.bluez.Device1object. (Thanks Kober Engineering!) - (MacOS) Fixed incorrect storage and retrieval with standard Bluetooth UUIDs inside the peripheral class. (Thanks TellowKrinkle!)
- (Python) Fixed incorrect handling of the GIL in certain functions. (Thanks nomenquis and Medra AI!)
SimpleBLE v0.7.3
[0.7.3] - 2024-03-23
Updated the licensing documentation.
Ported over from v0.7.0
Added
- Function to query the version of SimpleBLE at runtime.
- (Python) Missing API from SimpleBLE::Characteristic.
Changed
- (MacOS) Main adapter address is now hardcoded to allow caching based on adapter address. (Thanks BlissChapman!)
- (Python) Release GIL when calling
Peripheral.write_requestandPeripheral.write_command. - (MacOS) Rewrote the entire backend.
- (MacOS) OperationFailed exception now contains the error message provided by the OS.
Fixed
- (MacOS) Remove unnecessary timeout during service discovery. (Thanks BlissChapman!)
- (MacOS) Return correct list of devices when scanning. (Thanks roozmahdavian!)
- (MacOS) Remove unnecessary timeout during characteristic notification. (Thanks BlissChapman!)
- (MacOS) Remove unnecessary timeout during operations on characteristics.
- (Windows) Failed connection attempt would not trigger an exception. (Thanks eriklins!)
- (Linux) Use correct UUIDs for advertized services. (Thanks Symbitic!)
SimpleBLE v0.7.1
[0.7.1] - 2024-02-16
Bumped version to fix missing new license information in the Python and Rust packages.
Ported over from v0.7.0
Added
- Function to query the version of SimpleBLE at runtime.
- (Python) Missing API from SimpleBLE::Characteristic.
Changed
- (MacOS) Main adapter address is now hardcoded to allow caching based on adapter address. (Thanks BlissChapman!)
- (Python) Release GIL when calling
Peripheral.write_requestandPeripheral.write_command. - (MacOS) Rewrote the entire backend.
- (MacOS) OperationFailed exception now contains the error message provided by the OS.
Fixed
- (MacOS) Remove unnecessary timeout during service discovery. (Thanks BlissChapman!)
- (MacOS) Return correct list of devices when scanning. (Thanks roozmahdavian!)
- (MacOS) Remove unnecessary timeout during characteristic notification. (Thanks BlissChapman!)
- (MacOS) Remove unnecessary timeout during operations on characteristics.
- (Windows) Failed connection attempt would not trigger an exception. (Thanks eriklins!)
- (Linux) Use correct UUIDs for advertized services. (Thanks Symbitic!)
SimpleBLE v0.7.0
[0.7.0] - 2024-02-15
IMPORTANT: LICENSE TERMS HAVE CHANGED.
Added
- Function to query the version of SimpleBLE at runtime.
- (Python) Missing API from SimpleBLE::Characteristic.
Changed
- (MacOS) Main adapter address is now hardcoded to allow caching based on adapter address. (Thanks BlissChapman!)
- (Python) Release GIL when calling
Peripheral.write_requestandPeripheral.write_command. - (MacOS) Rewrote the entire backend.
- (MacOS) OperationFailed exception now contains the error message provided by the OS.
Fixed
- (MacOS) Remove unnecessary timeout during service discovery. (Thanks BlissChapman!)
- (MacOS) Return correct list of devices when scanning. (Thanks roozmahdavian!)
- (MacOS) Remove unnecessary timeout during characteristic notification. (Thanks BlissChapman!)
- (MacOS) Remove unnecessary timeout during operations on characteristics.
- (Windows) Failed connection attempt would not trigger an exception. (Thanks eriklins!)
- (Linux) Use correct UUIDs for advertized services. (Thanks Symbitic!)
SimpleBLE v0.6.1
[0.6.1] - 2023-03-14
Added
- (Python) Generate source distribution packages.
- (SimpleDBus) Proxy objects keep track of their existence on the DBus object tree.
Changed
- Bluetooth enabled check was moved into the frontend modules. (Thanks felixdollack!)
- (Windows) Use the standard C++ exception handling model. (Thanks TheFrankyJoe!)
Fixed
- CI artifacts for non-standard architectures are now properly built.
- (SimpleBluez) Fixed incorrect handling of invalidated children objects.
New Contributors
Full Changelog: v0.6.0...v0.6.1