The dbus package

[Tags: gpl, library]

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

Versions0.10, 0.10.1, 0.10.2, 0.10.3, 0.10.4, 0.10.5, 0.10.6, 0.10.7, 0.10.8
Dependenciesbase (>=4.0 && <5.0), bytestring (>=0.9), cereal (>=0.3.4 && <0.5), containers (>=0.1 && <0.6), libxml-sax (==0.7.*), network (>=2.2.3), parsec (>=2.0 && <3.2), random (==1.0.*), text (>=0.11.1.5), transformers (>=0.2), unix (>=2.2), vector (>=0.7 && <0.11), xml-types (==0.3.*)
LicenseGPL-3
AuthorJohn Millikin <john@john-millikin.com>
MaintainerJohn Millikin <john@john-millikin.com>
Stabilityexperimental
CategoryNetwork, Desktop
Home pagehttps://john-millikin.com/software/haskell-dbus/
Bug trackermailto:jmillikin@gmail.com
Source repositoryhead: git clone https://john-millikin.com/code/haskell-dbus/
this: git clone https://john-millikin.com/code/haskell-dbus/(tag haskell-dbus_0.10.8)
Upload dateSun May 18 17:47:25 UTC 2014
Uploaded byJohnMillikin
DistributionsDebian:0.10.7, Fedora:0.10.7, NixOS:0.10.8
Downloads4104 total (341 in last 30 days)

Modules

[Index]

Downloads

Maintainers' corner

For package maintainers and hackage trustees