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.

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

Erlang

erlang-dbus

Elixir

dbux

OCaml

obus

.NET

dbus-sharp

Ada

D_Bus/Ada

Haskell

dbus

dbus

d-bus

d-bus

udbus

udbus

Perl

Net::DBus

Objective-C

DBusKit

Tcl

dbus-tcl

Pascal

FreePascal dbus package

FreePascal has dbus package included.

Gambas

gb.dbus

Gambas has gb.dbus package included.

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.

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").