This page lists the language bindings for D-Bus, their status and, if appropriate, links to download them.
GLib
You can find latest glib bindings in Freedesktop's git repo. To access with git:
- users with commit access: git+ssh://git.freedesktop.org/git/dbus/dbus-glib
- anonymous read only access: git://anongit.freedesktop.org/git/dbus/dbus-glib
A page for working on a roadmap for dbus-glib's future can be found at DBusGLibRoadmap.
The latest release is dbus-glib-0.74.tar.gz. (2007-06-27)
- Init threading first to stop a warning from new GLib.
- Remove the XML documentation support in configure
- Fix typo in _dbus_gvalue_signals_error (#10837) (Thanks to Peter Kjellerstedt)
- Update GLib requirement (Closes #10889).
- Document dbus-gtype-specialized
- Add simple test suite for peer objects.
- Support peer-to-peer proxies. (Closes #10233).
- Add dbus_connection_get_g_connection.
- Stop compiler warnings (Closes #10374).
- Handle dbus errors which are not name has no owner
- Update abstract socket test from DBus, which now cross-compiles
- Rename the error quark to be unique
- Update AUTHORS
The previous release is dbus-glib-0.73.tar.gz. (2006-02-13)
- Allow passing of NULL to strv out arguments.
(Patch due to Luiz Augusto von Dentz < luiz.dentz@gmail.com >. Fixes bug #8795.)
- Make uscore_to_wincaps return NULL when passed NULL. (Fixes bug #8318.)
Only respond to NameOwnerChanged if its one of our names. (Patch by Kimmo Hämäläinen < kimmo.hamalainen@nokia.com >. Fixes bug #8235.)
- Fix dbus-binding-tool to generate headers usable from C++.
(Thanks to Christian Persch < chpe@gnome.org >. Fixes bug #6358.)
- Only require --prefix for server side binding generation. (Fixes reopened bug #4185.)
- Clarify documentation for dbus_g_method_get_sender. (Fixes #8832.)
- Add new API for specifying the timeout in DBusGProxy calls.
(Patch due to S. Nalliami < snallammai@novell.com >. Fixes bug #9832.)
- Don't check for libxml2 when expat not found. (Fixes bugs #9894 and #9000.)
- Add configure flags --with-introspect-xml. (Fixes bug #9105)
- Use dbus_threads_init_default() rather than using own threading primitives. (Fixes bug #9259.)
- Reduce dependency to dbus version 0.93, error out if correct version
not found. (Patch due to Luiz Augusto von Dentz < luiz.dentz@gmail.com >. Fixes bug #8793.)
- Allow dbus and dbus-glib to live in different prefixes. (Fixes bug #9384.)
- Add pkg-config support for uninstalled use.
(Fix due to Damien Carbery < damien.carbery@sun.com >. Fixes bug #9769.)
Python
Releases are always available from http://dbus.freedesktop.org/releases/dbus-python/
API and other documentation are at http://dbus.freedesktop.org/doc/dbus-python/
dbus-python is maintained in git: dbus-python gitweb
- For users with commit access: git clone git+ssh://git.freedesktop.org/git/dbus/dbus-python
- For anonymous read only access: git clone git://anongit.freedesktop.org/git/dbus/dbus-python
Bugs are tracked in the freedesktop.org bugzilla: search for dbus-python bugs or file a dbus-python bug
The current version is dbus-python 0.82.3, the "not for Trial-3" release. (2007-09-27)
Fixes:
- Out-of-tree builds with an absolute $(srcdir) can now build docs and run tests
Closing private dbus.Bus no longer raises KeyError (fd.o #12096)
async_err_cb(MyException()) now works (fd.o #12403)
- dbus.service.Object.remove_from_connection no longer claims that multiple exports aren't possible (fd.o #12432)
- Setting _dbus_error_name as a class attribute of DBusException subclasses works again
Deprecations:
dbus.Bus(private=True) (use dbus.bus.BusConnection in new code, dbus.Bus basically just adds the shared-connection behaviour)
Licensing:
- Code for which Collabora is the only copyright holder is now under the same permissive MIT/X11 license under which dbus core is being relicensed (this allows everything the old license would have allowed, and more)
Java
There are now three versions of Java D-Bus. 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, but only work with 1.5-compatible VMs (Currently only Sun). There are older 1.4-compatible bindings which are feature incomplete and have not had much optimization work. See below if you want to try these.
Java D-Bus is hosted in freedesktop.org's git repository and can be accessed:
For users with commit access: git+ssh://git.freedesktop.org/git/dbus/dbus-java
For anonymous read only access: git://anongit.freedesktop.org/git/dbus/dbus-java
The latest release is dbus-java-2.4.tar.gz. (2008-02-05) Version 2.4:
- Add DBusMemberName to force method names or signal names to something
other than the Java name (suggested byaViktar Vauchkevich <vctr -at- yandex -dot- ru>)
- Don't respond to Introspect/Ping except on the right interface
(pointed out by Serkan Kaba <serkan_kaba -at- yahoo -dot- com>)
- Automatically unexport objects which go out of scope in the
- parent program (don't hold a strong reference). This is now optional and not the default for 1. sanity and 2. a possible
bug in the WeakReference workings in Sun.
- parent program (don't hold a strong reference). This is now optional and not the default for 1. sanity and 2. a possible
- Add fallback objects---a single object can be called for any
- object under a given path prefix.
- Add support for localization of strings via gettext.
- Throw a nicer error when signals are not declared as part of an
- interface.
- .viewerclasses needs to depend on .binclasses
- Use libunixsocket-java support for writing multiple byte arrays at
- once to write message vectors
- check that the unix-socket-received uid matches for connections to
- DBusDaemon
- Update to use libunixsocket-java syntax which works on BSDs
- Fix utf-8 characters used in test to actually be the same character...
- Add code to preallocate the buffer array array (Suggested by Adam
Bennett <cruxic -at- gmail -dot- com>)
- Fix warnings when building with gcj (fixes a bug in Peer handling and
- DBusSerializable handling)
The previous release was dbus-java-2.3.2.tar.gz. (2007-12-01)
Version 2.3.2:
- Fix empty array/map bug (reported by Jan Kümmel
<freedesktop -at- snorc -dot- org>)
- Add licence headers to files missing them
Fix minor bug in AbstractConnection.java (reported by Frank Benoit
<benoit -at- tionex -dot- de>
- Make Marshalling more verbose and descriptive in the presence of
- mismatched parameter lists (suggested by Anibal Sanchez
<anibal -dot- sanchez -at- sunya -dot- com -dot- ar>)
- mismatched parameter lists (suggested by Anibal Sanchez
- Fix struct type parsing error (spotted by Gunnar Aastrand Grimnes
<gunnar -dot- grimnes -at- dfki -dot- de> and Frank Benoit <keinfarbton -at- googlemail -dot- com>)
- Fix parsing of serializable classes
- Anonymous SASL (needs testing)
Version 2.3.1:
Fix regression in normal array handling (spotted by Anibal Sanchez <anibal -dot- sanchez -at- sunya -dot- com -dot- ar>
Version 2.3:
- Apply recursive-path patch for DBusViewer (written by Zsombor Gegesy
<gzsombor -at- gmail -dot- com>)
- Add Class-Path to jar manifests
- Update documentation for nested classes
- Documentation build fix
- Add test for arrays-of-structs
- Fix arrays-of-structs bug (spotted by Daniel Machado
<cdanielmachado -at- gmail -dot- com>)
- Fix bashism in Makefile
- add DBusInterfaceName annotation to override the Java interface name as
- the name exported on the bus.
The last release binding the reference implementation is libdbus-java-1.13.tar.gz.
Documentation and API reference for the Java implementation of D-Bus is here.
The older 1.4-compatible bindings are still available here.
The Maintainer is Matthew Johnson < dbus@matthew.ath.cx >
Qt4
The D-Bus bindings for Qt4 are distributed alongside Qt itself, starting with version 4.2. The latest release can be found at http://www.trolltech.com/developer/downloads/qt/index. More recent versions can be found in Qt's nightly snapshots.
Perl
The Perl bindings currently work on any Perl >= 5.8.x and any D-Bus version from 0.33.0 onwards. They can be downloaded from CPAN under the Net-DBus module:
The maintainer is Daniel P. Berrange, and the source code is managed in a Mercurial repository at http://hg.berrange.com/libraries/net-dbus--devel
C++
dbus-cpp was started almost three years ago to provide a C++ API for D-Bus, but is unfortunately abandoned since then. For this reason PaoloDurante wrote a pure C++ binding while working on the OpenWengo softphone.
The most recent version is available on freedesktop.org via Git, just do
git clone git://anongit.freedesktop.org/git/dbus/dbus-c++/
Pascal
Pascal bindings are in progress and details can be found here.
Qt3
There is a Qt3 backport of the Qt4 bindings available under WebSVN@KDE and [ http://people.freedesktop.org/~krake/dbus-1-qt3/libdbus-1-qt3-0.8.tar.gz Sources ca. 600 KB]
Check out through anonymous SVN is also avialable: svn co svn://anonsvn.kde.org/home/kde/branches/work/dbus-qt4-qt3backport
API documentation can be found here: API Docs
The maintainer is Kevin Krammer < kevin.krammer@gmx.at >
.NET
The .NET bindings located in the D-Bus GIT server is unmaintained. They are scheduled to be removed unless a maintainer steps up. The have been split and placed in a git repo for anyone who would like to pick up maintainership. It can be accessed via git at:
For users with commit access: git+ssh://git.freedesktop.org/git/dbus/dbus-mono
For anonymous read only access: git://anongit.freedesktop.org/git/dbus/dbus-mono
For those interested in .NET support, the D-Bus Sharp implementation provides an alternative and is in active development. D-Bus Sharp is not a binding to the reference implementation, but an alternative implementation of the D-Bus protocol.
Ruby
The most active and complete ruby implementation at this point is the ruby-dbus project at https://trac.luon.net/ruby-dbus/. This is a follow on from the original ruby-dbus project on rubyforge.
Sven Herzberg was asked by a friend to develop dbus bindings for ruby. His git repository is located at: http://www.blaubeermuffin.de/rdbus.git
Scheme
Chicken Scheme binding can be found at chicken's Egg Repository as dbus egg. The same place contains few short usage samples.


