[Haskell-cafe] ANNOUNCE: dbus-core 0.5 and dbus-client 0.1
Pasqualino "Titto" Assini
tittoassini at gmail.com
Sun Nov 1 07:45:31 EST 2009
I think that we should institute an award for "best documented haskell
package" and yours would be my first choice.
2009/10/30 John Millikin <jmillikin at gmail.com>:
> These are pure-Haskell client libraries for using the D-Bus protocol.
> D-Bus is heavily used for inter-application IPC on Free and
> open-source desktop platforms, such as Linux, OpenSolaris, and
> FreeBSD. These libraries allow applications written in Haskell to
> inter-operate with other components of recent GNOME, KDE, and XFCE
> This is the first "real" release of these libraries; dbus-core has
> been published on Hackage for some time, but mostly just to make sure
> I got the Cabal bits right. I feel they are now stable / featureful
> enough for public use.
> Both are available on Hackage:
> "dbus-core" is an implementation of the D-Bus protocol, specifically
> the parts relevant to clients. Eventually, it will probably grow some
> functions useful for implementing a message bus as well. It includes
> type mapping / conversion, an implementation of the wire format
> (marshaling / unmarshaling), data types for the currently defined
> message types (METHOD_CALL, METHOD_RETURN, ERROR, and SIGNAL) and a
> basic parser / generator for introspection documents. It is roughly
> equivalent in purpose to libdbus.
> By itself, a protocol implementation is somewhat cumbersome to use, so
> "dbus-client" is a high-level wrapper. It provides some abstractions
> like remote object proxies, exported object trees, synchronous method
> calls, signal reception, and name reservation. Messages are received
> and processed in separate IO threads, allowing asynchronous method
> call and signal handling.
> The purpose between splitting the library into two packages is
> stability; "dbus-core", ideally, will change only rarely --
> performance improvements, new message / data types, etc. It provides a
> base level of functionality which more specialised libraries may use.
> "dbus-client" is an example of what such a library could look like,
> though for now it's not very Haskell-y (IO everywhere, exceptions,
> explicit locking). By separating the protocol from the client libs,
> alternative client libs can safely depend on the protocol
> To see a sample of the library working, there's a clone of the
> "dbus-monitor" utility in <dbus-core/Examples>. Documentation is
> currently a bit lacking, so for now, the best documentation is the PDF
> of the source code itself, and the (rather barren) Haddock output:
> Once more people have used it without any major API issues, I'll write
> up a manual and populate the Haddock entries.
> Please respond with any feedback, difficulties, or suggestions. I'm
> particularly interested in ways to improve the public API, since I
> would rather make any breaking changes *before* anything big depends
> on these libraries.
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
Pasqualino "Titto" Assini, Ph.D.
More information about the Haskell-Cafe