Skip to content

D Bus Bindings for Python

Barry Byford edited this page Jan 24, 2021 · 1 revision

As Bluezero uses the D-Bus API from Bluez, then which Python D-Bus bindings to use is a key element. This list is not in any particular order. It is here just to track what is around as possible alternatives.

Library URL Notes
dbus-python https://dbus.freedesktop.org/doc/dbus-python/ The reference implementation but event they question if it is the right library for people to use
GDBus https://developer.gnome.org/gio/stable/gdbus-convenience.html Is probably on your linux system already. uses the GLib main loop and object model
pydbus https://pypi.org/project/pydbus/ Nicely pythonic for client application. Slightly clunky when needing to publish to the system bus such as BlueZ advertisements or GATT server
DBussy https://github.com/ldo/dbussy Uses Python own “asyncio” event-loop architecture
python-dbus-next https://github.com/altdesktop/python-dbus-next Zero dependencies and pure Python 3. Support for multiple IO backends including asyncio and the GLib main loop
Tx DBus https://github.com/cocagne/txdbus Tx DBus is a native-python implementation of the DBus protocol on top of the Twisted networking engine
python-adbus https://github.com/ccxtechnologies/adbus D-Bus Binding for Python utilizing the Python's asyncio module.
Clone this wiki locally