SimpleBLE
Build Bluetooth once. Ship it everywhere.
SimpleBLE is the cross-platform Bluetooth Low Energy stack for Windows, macOS, Linux, iOS, and Android. Use it from C++, C, C#, Python, Java, or Rust, with dedicated APIs for Kotlin on Android and Unreal Engine.
New in v1.2
Host your own BLE peripherals on Windows, macOS, Linux, and Android with the new local peripheral-mode API, and use SimpleBLE from C# with SimpleSharpBLE on NuGet. The C API has been reworked; see the migration guide.
Why SimpleBLE
- One cross-platform API: Keep application-facing BLE logic consistent across desktop and mobile.
- Native underneath: Use WinRT, CoreBluetooth, BlueZ, and Android Bluetooth through one maintained stack.
- Built for real products: Central- and peripheral-role support across all supported platforms.
- Commercially supported: Ship proprietary applications with licensing and direct technical support available.
Language Bindings & Plugins
- C++ (SimpleBLE): Core implementation with full platform support.
- C (SimpleCBLE): C-wrapped version of the library.
- C# (SimpleSharpBLE): .NET bindings available from NuGet.
- Python (SimplePyBLE): Python bindings available from PyPI.
- Java (SimpleJavaBLE): Java bindings available from Maven Central with bundled desktop native libraries.
- Rust (SimpleRsBLE): Rust bindings available from crates.io.
- Android (SimpleDroidBLE) - Beta: Android-only Kotlin bindings available from Maven Central.
- Unreal Engine (SimpleBLE for Unreal): Unreal Engine plugin with Blueprint and C++ APIs.
- Unity (SimpleBLE for Unity): C# plugin for Windows and Android with IL2CPP support.
SimplePyBLE has surpassed 3.5 million downloads on PyPI.
Getting Started
New to SimpleBLE or Bluetooth LE? Start with the shortest path that matches where you are:
- Need to install a binding? Use the Installation guide to choose the right package or source build path for C++, C, C#, Python, Java, Rust, Android, Unreal Engine, and agent tooling.
- Need a first working program? Use the Quickstart to scan for nearby BLE devices with copy/paste snippets for each supported binding.
- Need to build a real workflow? Use the Recipes for scanning, connecting, and GATT operations like read, write, and notify.
- New to BLE concepts? Read Fundamentals for Bluetooth LE basics, permissions, concurrency, and CMake setup.
Support & Resources
We're here to help you succeed with SimpleBLE:
- Documentation: Start with Installation, Quickstart, and the task-based Recipes.
- Community: Join our Discord server for discussions and help.
- Commercial Support: Check out our website or email us for licensing and professional services.
- Extension Libraries: Learn about SimpleBluez, our BlueZ abstraction layer, and SimpleDBus, our DBus object hierarchy handler.
Don't hesitate to reach out if you need assistance - we're happy to help!
SimpleBLE is a project powered by The California Open Source Company.
