This page lists the language bindings for D-Bus, their status and, if appropriate, links to download them.
Cross-language (with bindings to multiple languages)
GDBus (part of GLib 2.26+)
QtDBus (part of Qt)
Eldbus (part of Enlightenment's EFL)
Python
pydbus
pydbus is a modern, pythonic D-Bus library built on top of PyGI and GDBus.
- Github: https://github.com/LEW21/pydbus
GDBus
GDBus, the D-Bus implementation in GLib, can be used from Python 2 or 3 via PyGI.
QtDBus
QtDBus, the D-Bus implementation in Qt, can be used from Python 2 or 3 via recent versions of ?PyQt.
txdbus
txdbus is a native Python implementation of the D-Bus protocol for the Twisted networking framework.
Ruby
ruby-dbus
ruby-dbus is the most popular Ruby D-Bus library.
Go
godbus/dbus
Rust
dbus-rs
- Github: https://github.com/diwic/dbus-rs
Erlang
erlang-dbus
Elixir
dbux
- Github: https://github.com/mspanc/dbux
OCaml
obus
- Github: https://github.com/diml/obus
.NET
dbus-sharp
Ada
D_Bus/Ada
- Website: https://www.codelabs.ch/dbus-ada/
- Git repository
- Packages are available in Debian (>= Wheezy) and Ubuntu (>= Quantal Quetzal)
Haskell
dbus
d-bus
udbus
Perl
Net::DBus
Objective-C
DBusKit
Tcl
dbus-tcl
Pascal
FreePascal dbus package
FreePascal has dbus package included.
- Documentation: http://wiki.freepascal.org/FPC_and_DBus
Gambas
gb.dbus
Gambas has gb.dbus package included.
- Documentation: http://gambaswiki.org/wiki/doc/dbus
Java
dbus-java
Since version 2.0 it has been a complete native implementation of the protocol and not a wrapper around the reference implementation. 1.x versions are feature-complete bindings around the reference implementation.
Java D-Bus is hosted in freedesktop.org's git repository.
The current release is dbus-java-2.7.tar.gz. (2009-12-06)
The last release binding the reference implementation is libdbus-java-1.13.tar.gz. (2006-12-26)
Documentation and API reference for the Java implementation of D-Bus is here.
The Maintainer is Matthew Johnson < dbus@matthew.ath.cx >
Obsolete libraries
DBus-GLib (obsolete, unmaintained)
New GLib applications should use GDBus. See above.
DBus-GLib pretends to be thread-safe but is not. The object model is rubbish and is implemented much better in GDBus (above). The code is not maintained. Do not use it.
- API documentation
- Git repo
- Releases
- Bugs are tracked in the freedesktop.org bugzilla: search for dbus-glib bugs or file a dbus-glib bug
- Training material for Glib wrappers from maemo
dbus-python (based on DBus-GLib)
New applications should use pydbus, txdbus or GDBus/QtDBus bindings. See above.
dbus-python is a binding for libdbus, the reference implementation of D-Bus. For compatibility reasons, its API involves a lot of type-guessing (despite "explicit is better than implicit" and "resist the temptation to guess").
- Recent release history
- API documentation
- Git repo
- Releases
- Bugs are tracked in the freedesktop.org bugzilla: search for dbus-python bugs or file a dbus-python bug
