[Haskell-cafe] ANNOUNCE: dbus-core 0.6 and dbus-client 0.2

John Millikin jmillikin at gmail.com
Wed Nov 11 23:57:43 EST 2009

This is the second public release of my D-Bus implementation.
dbus-core is an implementation of the D-Bus protocol, and dbus-client
is a set of wrappers and utility computations to simplify writing
basic clients.

Interesting changes to dbus-core

* Performance improvements: sending and receiving large structures
should now be significantly faster. My thanks and appreciation go to
Bryan O'Sullivan, whose excellent Criterion library made benchmarking
the serialisation code much easier than it had any right to be.

* Better support for byte arrays: byte strings (strict and lazy) are
now directly supported types, with special cases to avoid most
conversion overhead.

* Implemented the TCP/IP transport, though it's untested because I
can't figure out how to make the server listen on a socket. If anybody
cares about remote D-Bus, and this doesn't work, drop me a mail with
your configuration and I'll find out why.

* Added module to represent "match rules", required for full signal support.

* Added module for name reservations -- this is really just moving the
bulk of the code from dbus-client into dbus-core, where it belongs.

* Fixed possible concurrency issue when receiving messages from a
connection in multiple threads. This is still a really bad idea, and
it will never work correctly, but at least now it won't corrupt the
connection state.

Interesting changes to dbus-client

* Fixed dumb signature to mkClient (thanks, Max). Its purpose should
now be more obvious.

* Shifted around some of the method call APIs -- it's now possible to
send method calls without a proxy.

* Uses the new MatchRule work to fully support receiving signals.


PDFs of the source; these are the most useful and complete
documentation currently available:


An API listing is also available, good for a quick overview:


Hackage is currently experiencing some dependency conflicts with the
"bytestring" library[1], so it's not generating its own documentation.
I'll keep
the dropbox pages up until Hackage is in a more usable state.


Available from the usual places:


[1] "binary" uses bytestring-, "text" uses bytestring-, kaboom

More information about the Haskell-Cafe mailing list