Skip to content
David Herrmann edited this page Sep 25, 2018 · 14 revisions

The dbus-broker project is an implementation of a message bus as defined by the D-Bus specification. Its aim is to provide high performance and reliability, while keeping compatibility to the D-Bus reference implementation. It is exclusively written for linux systems, and makes use of many modern features provided by recent linux kernel releases.

While compatibility to existing D-Bus implementations is crucial, there are several situations where dbus-broker deviates from existing practices, and provides its own solutions. All these deviations are documented.

It is possible to use dbus-broker as a drop-in replacement for the reference implementation, as described below, but it is also possible to integrate the message broker directly as an isolated process without any side-effects or file-system access.

Available Packages

Using dbus-broker

Both the D-Bus System and User Bus can be provided via dbus-broker as a replacement for dbus-daemon. You must install the dbus-broker package via your distribution package manager first. It ships two systemd units (both called dbus-broker.service, one each for user and system instance of systemd), which are suitable as drop-in replacements for dbus.service as provided by the D-Bus reference implementation.

(You still need the dbus reference implementation installed, since it provides tools used by many applications, as well as the dbus.socket unit file.)

To enable dbus-broker as system bus, run:

# systemctl enable dbus-broker.service

This will create a link /etc/systemd/system/dbus.service poiting to the dbus-broker service file, as such replacing the service file provided by the reference implementation.

Similarly, the user bus can be provided by dbus-broker via:

# systemctl --user enable dbus-broker.service
..or..
# systemctl --global enable dbus-broker.service

(The first command enables it just for the calling user, while the second command enables it for all local users.)

After a reboot the changes take effect.

You can’t perform that action at this time.