SimpleSharpBLE 1.2.1-dev.105

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.105
                    
NuGet\Install-Package SimpleSharpBLE -Version 1.2.1-dev.105
                    
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.105" />
                    
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.105" />
                    
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.105
                    
#r "nuget: SimpleSharpBLE, 1.2.1-dev.105"
                    
#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.105
                    
#: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.105&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=SimpleSharpBLE&version=1.2.1-dev.105&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

SimpleSharpBLE follows the SimpleBLE license, the Business Source License 1.1 (BUSL-1.1). It is free for non-commercial use, and commercial use needs a commercial license. We offer free commercial licenses for small projects and early-stage companies: email us or leave us a message to discuss your use case. Commercial licenses carry no royalties or revenue sharing; see the licensing page for terms.


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.153 0 10/24/2026
1.2.1-dev.145 0 10/24/2026
1.2.1-dev.140 24 10/23/2026
1.2.1-dev.137 94 10/22/2026
1.2.1-dev.136 102 10/22/2026
1.2.1-dev.135 93 10/22/2026
1.2.1-dev.132 87 10/22/2026
1.2.1-dev.131 91 10/22/2026
1.2.1-dev.129 93 10/21/2026
1.2.1-dev.126 97 10/20/2026
1.2.1-dev.125 90 10/20/2026
1.2.1-dev.124 98 10/20/2026
1.2.1-dev.122 101 10/20/2026
1.2.1-dev.121 96 10/20/2026
1.2.1-dev.116 96 10/20/2026
1.2.1-dev.115 88 10/20/2026
1.2.1-dev.114 107 10/19/2026
1.2.1-dev.106 103 10/19/2026
1.2.1-dev.105 97 10/19/2026
1.2.0 152 9/28/2026
Loading failed