react-native-ble-plx is a React Native library for building Bluetooth Low Energy client applications on iOS and Android.
The library solves the problem of communicating with BLE peripheral devices from React Native apps. It provides a JavaScript interface to native Bluetooth APIs, enabling developers to scan for devices, establish connections, discover services and characteristics, read and write data, monitor notifications, and manage connection parameters like MTU and RSSI. The approach wraps platform-specific BLE implementations on both iOS and Android behind a unified API.
Developers should choose this library if they are building a React Native application that needs to interact with BLE peripherals. It works well for projects targeting both iOS and Android that require standard BLE client functionality. The library explicitly does not support Bluetooth Classic devices, peer-to-peer communication between phones using BLE, device bonding, or beacon detection. It is designed specifically for central role operations communicating with external BLE peripherals.
The project maintains active compatibility with recent React Native versions and Expo. Recent changes show attention to error reporting improvements, with several method calls converted to promises to surface errors on the JavaScript side. Documentation updates have been added for Android 14 compatibility. The library includes a cleanup mechanism for the BLE instance after destruction and performs Android instance validation before method calls.