d-bus: A Pure* and Permissively Licensed D-Bus Implementation for Haskell

01/31/2014 Uncategorized

D-Bus is a free software framework for inter-process communication. It’s used by many components of the freedesktop.org implementations, including GNOME, KDE, and Xfce. Until today, there were (to our knowledge) no permissively licensed pure D-Bus implementation written for Haskell.

Philonous and myself are hereby presenting d-bus, a permissively licensed D-Bus client library written purely in Haskell*. The library has been written by Philonous, but we have shared the development costs between ourselves.

This initial release features all D-Bus data types, complete handling of D-Bus signatures (which describes the number and types of arguments required by methods and signals), as well as introspection. The library uses modern extensions to the Haskell type system (including GADTs, DataKinds and TypeFamilies) and the singletons library to embedd the D-Bus type system. This allows D-Bus signatures to be inferred.

The library will be used by the Pontarius project (together with Pontarius XMPP and our end-to-end security software in the works) to allow for integration with our upcoming GNOME software.

*) If you’re compiling on FreeBSD there is a small piece of C code for compatibility.

Update, 25 February, 2014: Vincent Hanquez has pointed out that he has actually developed a permissive D-Bus library, udbus. The point for us was the dependently typed interface, and had we known about udbus, we would have happily built our interface on top of it.

, , ,

4 Comments

Join the conversation → Add yours