{"id":44443,"library":"bumble","title":"Bumble","description":"Bumble is a Bluetooth stack written in Python for apps, emulation, testing, and experimentation. It supports Bluetooth Classic, BLE, and HCI. Current version: 0.0.229. Release cadence is irregular.","status":"active","version":"0.0.229","language":"python","source_language":"en","source_url":"https://github.com/google/bumble","tags":["bluetooth","BLE","HCI","emulation","testing"],"install":[{"cmd":"pip install bumble","lang":"bash","label":"PyPI"}],"dependencies":[{"reason":"required for BLE security operations","package":"cryptography","optional":false},{"reason":"required for USB HCI transport","package":"pyusb","optional":true},{"reason":"required for serial HCI transport","package":"pyserial","optional":true}],"imports":[{"wrong":"from bumble.core import Device","symbol":"Device","correct":"from bumble.device import Device"}],"quickstart":{"code":"import asyncio\nfrom bumble.adapter import Adapter\nfrom bumble.core import Device\n\nasync def scan():\n    adapter = Adapter()\n    await adapter.start()\n    scanner = adapter.create_scanner()\n    scanner.on('advertisement', lambda device: print(f'Device: {device}'))\n    await scanner.start()\n    await asyncio.sleep(5)\n    await scanner.stop()\n    await adapter.stop()\n\nasyncio.run(scan())","lang":"python","description":"A simple BLE scanner that prints advertisements for 5 seconds."},"warnings":[{"fix":"Pin exact version in requirements.txt or check the changelog before upgrading.","message":"Bumble is pre-1.0 and undergoes major API changes frequently. Code written for 0.0.200 may not work with 0.0.229.","severity":"breaking","affected_versions":"<1.0.0"},{"fix":"Change imports to 'from bumble.core import Device'.","message":"The 'Bumble' class in bumble.device was removed in v0.0.220. Use Device from bumble.core instead.","severity":"deprecated","affected_versions":">=0.0.220"},{"fix":"Always use asyncio.run() or await inside async functions; never call async methods without await.","message":"Most APIs are async. Forgetting 'await' can lead to coroutine objects being printed or ignored silently.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"search_vec":"'0.0.229':25 'app':11 'ble':20,31 'bluetooth':5,18,30 'bumbl':1,2 'cadenc':27 'classic':19 'current':23 'emul':12,33 'experiment':15 'hci':22,32 'irregular':29 'python':9 'releas':26 'stack':6 'support':17 'test':13,34 'version':24 'written':7","created_at":"2026-06-07T12:50:09.747357+00:00","updated_at":"2026-06-07T12:50:09.747357+00:00","problems":null,"ecosystem":"pypi","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://github.com/google/bumble","github":"https://github.com/google/bumble","docs":null,"changelog":null,"pypi":null,"npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["devops","testing"],"base_url":null,"auth_type":null,"provenance":{"verified_status":"passing","verified_at":"2026-07-03","last_verified":"2026-07-03","next_check":"2026-08-02","install_tag":null}}