bleak_bumble

September 4, 2025 ยท View on GitHub

bleak_bumble provides a Bumble backend for Bleak that enables:

  • Hardware-independent Bluetooth LE support: Use HCI Controllers (e.g. serial/USB) that are not supported natively by your OS
  • Virtual Bluetooth testing: Perform Bluetooth functional tests without physical hardware using virtual Bluetooth stacks like Android Emulator and Zephyr RTOS
  • Cross-network connections: Connect HCI Controllers that are not in the same radio network (virtual or physical)

Installation

pip install -e git+https://github.com/vChavezB/bleak-bumble.git

Quick Start

from bleak import BleakScanner, BleakClient
from bleak_bumble import BumbleTransportCfg, TransportScheme
from bleak_bumble.scanner import BleakScannerBumble
from bleak_bumble.client import BleakClientBumble

# Create transport configuration
cfg = BumbleTransportCfg(TransportScheme.TCP_SERVER, "127.0.0.1:1000")

# Create scanner with Bumble backend
scanner = BleakScanner(backend=BleakScannerBumble, cfg=cfg)

# Scan for devices
async for device, advertisement_data in scanner.advertisement_data():
    client = BleakClient(device, backend=BleakClientBumble, cfg=cfg)
    await client.connect()
    # ... work with device
    await client.disconnect()

Documentation

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.