D-Bus 1.0 was officially released last week. Developed by FreeDesktop.org (FDO), D-Bus is an open source interprocess communication (IPC) system created to promote interoperability between various Linux desktop environments by providing a cohesive common platform for internal system and application messaging. D-Bus, which has been under active development for four years, is already used extensively in the GNOME environment and will eventually replace DCOP in KDE.
D-Bus allows developers to expose underlying system and application functionality through buses that can be queried and monitored by applications and scripts. Initially designed to be used as a system message bus for FDO’s Linux Hardware Abstraction Layer, D-Bus has become an extremely useful tool for automation on both the system and application levels. Users can write simple scripts that leverage the high-level D-Bus bindings to externally control applications that support D-Bus functionality or intercept system-wide events.
Red Hat developer Havoc Pennington says that the D-Bus developers plan to work on performance improvements, high-level language bindings, D-Bus utilities, a windows port, better documentation, and tighter integration with desktop application development toolkits like GTK and Qt. According to KDE developer Thiago Macieira, TrollTech has already started integrating D-Bus support into Qt 4. Macieira comments, “We’re hoping that the Qt bindings to D-Bus will allow application and library developers to easily extend their software into this world of exchange of information.” Red Hat developer John Palmieri states that “the participation of the Qt4 binding team in the development of D-Bus 1.0 has helped bring this release to a quality that would not have been achieved without their involvement”.
Now that the D-Bus project has reached the significant 1.0 milestone, the developers plan to adhere to a strict API/ABI policy to prevent future breakage of the protocol and the API libraries. The API stability guarantee will promote adoption of D-Bus in desktop Linux applications and could potentially reduce the barriers that previously prevented third-party developers from incorporating D-Bus into their applications. KDE 4 developer Kevin Ottens, who considers the D-Bus 1.0 release to be “a major milestone for KDE 4,” explains that a “strong guarantee about compatibility is really important for an IPC system like this, and that’s exactly what D-Bus 1.0 offers us.”
As D-Bus adoption continues to escalate, the architectural distinctions that previously limited interoperability between GNOME and KDE will become less pronounced and users will benefit from greater cohesion on the desktop. Hopefully, D-Bus will make system services more accessible to users and reduce the need for redundant technologies by helping developers leverage common functionality.