The dbus package
D-Bus is a simple, message-based protocol for inter-process communication, which allows applications to interact with other parts of the machine and the user's session using remote procedure calls.
D-Bus is a essential part of the modern Linux desktop, where it replaces earlier protocols such as CORBA and DCOP.
This library is an implementation of the D-Bus protocol in Haskell. It can be used to add D-Bus support to Haskell applications, without the awkward interfaces common to foreign bindings.
Example: connect to the session bus, and get a list of active names.
{-# LANGUAGE OverloadedStrings #-}
import Data.List (sort)
import DBus
import DBus.Client
main = do
client <- connectSession
-- Request a list of connected clients from the bus
reply <- call_ client (methodCall "/org/freedesktop/DBus" "org.freedesktop.DBus" "ListNames")
{ methodCallDestination = Just "org.freedesktop.DBus"
}
-- org.freedesktop.DBus.ListNames() returns a single value, which is
-- a list of names (here represented as [String])
let Just names = fromVariant (methodReturnBody reply !! 0)
-- Print each name on a line, sorted so reserved names are below
-- temporary names.
mapM_ putStrLn (sort names)
$ ghc --make list-names.hs $ ./list-names :1.0 :1.1 :1.10 :1.106 :1.109 :1.110 ca.desrt.dconf org.freedesktop.DBus org.freedesktop.Notifications org.freedesktop.secrets org.gnome.ScreenSaver
Properties
| Versions | 0.10, 0.10.1, 0.10.2, 0.10.3, 0.10.4 |
|---|---|
| Dependencies | base (≥4.0 & <5.0), bytestring (≥0.9), cereal (≥0.3.4 & <0.4), containers (≥0.1 & <0.6), libxml-sax (0.7.*), network (≥2.2 & <2.2.3), network-bytestring (≥0.1.2 & <0.2), parsec (≥2.0 & <3.2), random (1.0.*), text (≥0.11.1.5 & <0.12), transformers (≥0.2 & <0.4), unix (≥2.2 & <2.7), vector (≥0.7 & <0.11), xml-types (0.3.*) or base (≥4.0 & <5.0), bytestring (≥0.9), cereal (≥0.3.4 & <0.4), containers (≥0.1 & <0.6), libxml-sax (0.7.*), network (≥2.2.3 & <2.4), parsec (≥2.0 & <3.2), random (1.0.*), text (≥0.11.1.5 & <0.12), transformers (≥0.2 & <0.4), unix (≥2.2 & <2.7), vector (≥0.7 & <0.11), xml-types (0.3.*) |
| License | GPL-3 |
| Author | John Millikin <jmillikin@gmail.com> |
| Maintainer | John Millikin <jmillikin@gmail.com> |
| Stability | experimental |
| Category | Network, Desktop |
| Home page | https://john-millikin.com/software/haskell-dbus/ |
| Bug tracker | mailto:jmillikin@gmail.com |
| Source repository | bzr branch https://john-millikin.com/branches/haskell-dbus/0.10/ |
| Upload date | Wed Oct 17 04:15:56 UTC 2012 |
| Uploaded by | JohnMillikin |
| Built on | ghc-7.6 |
| Distributions | NixOS: 0.10.4, Debian: 0.10.4 |
Modules
Downloads
- dbus-0.10.2.tar.gz (Cabal source package)
- package description (included in the package)