Erlang D-Bus

Context

D-Bus is a message bus and inter-process communication (IPC) system widely used on Linux desktops and embedded systems. It provides a language-independent, object-oriented RPC mechanism that allows applications and system services to communicate through well-defined interfaces.

The objective of Erlang D-Bus is to provide a native Erlang implementation of the protocol, allowing Erlang applications to communicate directly with D-Bus services and to expose Erlang processes themselves as D-Bus services.

What I did

I developed and maintained a native Erlang implementation of the D-Bus protocol, designing the library around Erlang/OTP concepts rather than simply wrapping an external D-Bus library.

This work combined several areas of software architecture:

  • binary protocol implementation
  • IPC and distributed communication
  • asynchronous message handling
  • object/RPC abstraction
  • Erlang/OTP behaviours and supervision
  • API design
  • interoperability with the Linux system stack

Outcome

Erlang D-Bus provides a reusable open-source D-Bus implementation for the Erlang ecosystem.

The library supports both D-Bus clients and services, with connections over UNIX sockets and TCP. Client and service functionality are covered by tests, and the repository also provides API documentation, a manual and example services.

The project is published under the Apache 2.0 license and has attracted community adoption and contributions.

On GitHub:

  • 55 stars
  • 27 forks
  • 448 commits

The project is also referenced by Erlang ecosystem resource lists, demonstrating its use as a D-Bus solution for Erlang applications.