SimpleSharpBLE 1.2.1-dev.103

This is a prerelease version of SimpleSharpBLE.
There is a newer prerelease version of this package available.
See the version list below for details.
dotnet add package SimpleSharpBLE --version 1.2.1-dev.103
                    
NuGet\Install-Package SimpleSharpBLE -Version 1.2.1-dev.103
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="SimpleSharpBLE" Version="1.2.1-dev.103" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="SimpleSharpBLE" Version="1.2.1-dev.103" />
                    
Directory.Packages.props
<PackageReference Include="SimpleSharpBLE" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add SimpleSharpBLE --version 1.2.1-dev.103
                    
#r "nuget: SimpleSharpBLE, 1.2.1-dev.103"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package SimpleSharpBLE@1.2.1-dev.103
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=SimpleSharpBLE&version=1.2.1-dev.103&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=SimpleSharpBLE&version=1.2.1-dev.103&prerelease
                    
Install as a Cake Tool

SimpleSharpBLE

The ultimate cross-platform library and bindings for Bluetooth Low Energy (BLE), designed for simplicity and ease of use.

SimpleSharpBLE provides the C# and .NET bindings for SimpleBLE.

Key Features

  • Cross-Platform: Enterprise-grade support for Windows, macOS, Linux, Android, iOS/iPadOS, and Mac Catalyst
  • Easy Integration: Clean, consistent API across all platforms
  • Multiple Language Bindings: Production-ready bindings for C, C++, C#, Python, Java and Rust, with more coming soon
  • Commercial Ready: Source-available commercial license for proprietary applications

Support & Resources

We're here to help you succeed with SimpleBLE:

Don't hesitate to reach out if you need assistance - we're happy to help!

Installation

Requirements:

  • .NET 10
  • Windows or glibc-based Linux (x64/ARM64), or macOS 14 or newer on Apple Silicon
  • Android 12 or newer (ARM64/x64)
  • iOS/iPadOS 15.8 or newer, the iOS simulator, and Mac Catalyst 16.0 or newer (ARM64)
  • On Linux, BlueZ and D-Bus; on Ubuntu, install them with sudo apt-get install bluez libdbus-1-3

Add SimpleSharpBLE to your project from NuGet:

dotnet add package SimpleSharpBLE

Usage

Scan for nearby devices:

using SimpleSharpBLE;

var adapters = Adapter.GetAdapters();
try
{
    if (adapters.Count == 0)
    {
        Console.WriteLine("No Bluetooth adapters found.");
        return;
    }

    var adapter = adapters[0];
    Console.WriteLine($"Using adapter: {adapter.Identifier} [{adapter.Address}]");
    adapter.ScanFor(TimeSpan.FromSeconds(5));

    var peripherals = adapter.ScanGetResults();
    try
    {
        Console.WriteLine("Scan results:");
        foreach (var peripheral in peripherals)
        {
            Console.WriteLine($"- {peripheral.Identifier} [{peripheral.Address}] {peripheral.Rssi} dBm");
        }
    }
    finally
    {
        foreach (var peripheral in peripherals) peripheral.Dispose();
    }
}
finally
{
    foreach (var adapter in adapters) adapter.Dispose();
}

See the SimpleSharpBLE documentation for the full API guide and platform setup, and the code examples on GitHub for connect, read/write, notify, and peripheral hosting flows.

Blocking GATT calls also have Async counterparts. Cancellation prevents queued work from starting; operations already in native code complete normally. Keep write buffers unchanged until the returned task completes.

The bindings support trimming and NativeAOT. In MAUI, use the same API and platform setup below; dispatch UI updates from callbacks with MainThread.BeginInvokeOnMainThread.

On Android, enable Bluetooth and grant Nearby devices permissions, then initialize on the application thread before using the API:

Java.Lang.JavaSystem.LoadLibrary("simpleble");
Advanced.Android.Initialize(Java.Interop.JniEnvironment.Runtime.InvocationPointer,
    Android.App.Application.Context.Handle);

See the Android scan example for the manifest, runtime permissions, and scanning off the UI thread.

On iOS/iPadOS and Mac Catalyst, set SupportedOSPlatformVersion to at least 15.8 (iOS) or 16.0 (Mac Catalyst), add NSBluetoothAlwaysUsageDescription to your app's Info.plist, and run blocking BLE operations off the UI thread. Sandboxed Catalyst apps also need the com.apple.security.device.bluetooth entitlement. Native libraries link automatically; Advanced.IOS applies to both iOS and Catalyst.

License

Since January 20th 2025, SimpleBLE is now available under the Business Source License 1.1 (BUSL-1.1). Each version of SimpleBLE will convert to the GNU General Public License version 3 after four years of its initial release. Qualifying non-commercial users may instead continue using and distributing that version under the original BUSL-1.1 terms under the Non-Commercial Perpetual Use Grant in LICENSE.md.

The project is free to use for non-commercial purposes, but requires a commercial license for commercial use. We also offer FREE commercial licenses for small projects and early-stage companies - reach out to discuss your use case!

Why purchase a commercial license?

  • Build and deploy unlimited commercial applications
  • Use across your entire development team
  • Zero revenue sharing or royalty payments
  • Choose features that match your needs and budget
  • Priority technical support included
  • Clear terms for integrating into MIT-licensed projects

Looking for information on pricing and commercial terms of service? Visit our website for more details.

For further enquiries, please email us or leave us a message on our website and we can discuss the specifics of your situation.


SimpleBLE is a project powered by The California Open Source Company.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net10.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.2.1-dev.116 0 10/20/2026
1.2.1-dev.115 0 10/20/2026
1.2.1-dev.114 0 10/19/2026
1.2.1-dev.106 73 10/19/2026
1.2.1-dev.105 83 10/19/2026
1.2.1-dev.104 90 10/18/2026
1.2.1-dev.103 99 10/18/2026
1.2.1-dev.100 90 10/18/2026
1.2.1-dev.94 93 10/17/2026
1.2.1-dev.90 94 10/17/2026
1.2.1-dev.89 90 10/17/2026
1.2.1-dev.88 90 10/17/2026
1.2.1-dev.87 86 10/17/2026
1.2.1-dev.84 89 10/17/2026
1.2.1-dev.83 89 10/17/2026
1.2.1-dev.82 98 10/16/2026
1.2.1-dev.81 96 10/16/2026
1.2.1-dev.70 90 10/15/2026
1.2.1-dev.69 87 10/15/2026
1.2.0 149 9/28/2026
Loading failed