skillfed

bumble

Bluetooth Stack for Apps, Emulation, Test and Experimentation

bumble v0.0.233 109.4K downloads/30d#12,515 on PyPI542
Permissive license Apache-2.0 Active released

What it is and what it does

Bumble is a Bluetooth stack implementation written entirely in Python that provides both protocol-level support and higher-level abstractions for Bluetooth Low Energy (BLE) and Bluetooth Classic (BR/EDR) communication. It implements core protocols including GAP, L2CAP, ATT, GATT, SMP, SDP, RFCOMM, HFP, HID, and A2DP, and can interface with physical Bluetooth radios via USB, UART, or Linux VHCI, as well as virtual radios including the Android emulator's virtual Bluetooth support.

The package is designed for applications, emulation, testing, and experimentation rather than production deployment. It depends on cryptography for security operations, websockets and aiohttp for network communication, pyserial and pyusb for hardware transport, and several UI/CLI tools like click, prompt_toolkit, and prettytable. The library is maintained by Google but explicitly disclaimed as not an official product and remains in alpha with breaking changes expected.

Use it for:

  • Build Bluetooth-enabled applications and prototypes that communicate with BLE or Classic devices without relying on OS-level Bluetooth APIs
  • Test and validate Bluetooth device behavior by emulating devices and profiles in a controlled Python environment
  • Experiment with Bluetooth protocols and develop custom protocol implementations using the stack's modular architecture
  • Debug Bluetooth communication by capturing and analyzing HCI traffic over USB dongles or UART connections
  • Simulate Bluetooth interactions in the Android emulator or other virtual environments for development and CI/CD testing

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Bumble is a full-featured Bluetooth stack written in Python that supports BLE and Bluetooth Classic protocols, profiles, and transports including USB, UART, and Linux VHCI.

Yes, if you need a Python-native Bluetooth stack for prototyping, testing, or experimentation with BLE or Classic devices. The active maintenance, permissive license, and low install friction make it accessible. However, the alpha status and explicit production disclaimer mean it is not suitable for production deployments—use for research, development, and testing only.

Install

bumble on PyPI

pip

pip install bumble

uv

uv add bumble

poetry

poetry add bumble

Installing bumble

Before you install

Low friction install as a pure Python wheel. Active maintenance with a release 30 days ago and commits through late July 2026. Requires Python 3.10 or later and pulls in 15 runtime dependencies including cryptography, websockets, and USB libraries.

License in practice

Licensed under Apache 2.0 (permissive), allowing use in commercial and private projects with minimal restrictions beyond attribution and liability disclaimers.

Quickstart

pip install bumble

import bumble.device
import bumble.hci

# Create and configure a Bluetooth device
device = bumble.device.Device(name='MyDevice')

Requires Python 3.10 or later. Physical radio use requires a USB Bluetooth dongle or UART/VHCI transport; internal OS Bluetooth interfaces are typically locked down.

Verify before relying

  • Whether all 15 runtime dependencies are required for basic usage or if subsets suffice for specific use cases
  • Current stability and production-readiness status beyond the alpha disclaimer in the description

Package facts

License Apache-2.0 (permissive)
Python support supports the current Python release (>=3.10)
Install friction low — pure-Python wheel
Runtime dependencies 15 — aiohttp, click, cryptography, humanize, platformdirs, prompt_toolkit, prettytable, pyee, tomli, websockets, pyserial-asyncio, pyserial, libusb1, libusb-package, pyusb
Maintenance actively maintained — 30 days since the last release
Last repo commit
First released
Downloads 109,439/month — #12,515 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: bumble-0.0.233-py3-none-any.whl

Tags

bluetooth stack pythonBLE bluetooth low energybluetooth classic BR/EDRbluetooth emulation testingbluetooth HCI USB UARTGATT GAP L2CAP ATTbluetooth protocol implementation
bluetooth-stackble-classicprotocol-testing

More Networking packages