dbus: A client library for the D-Bus IPC system.

[ apache, desktop, library, network ] [ Propose Tags ]

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
Versions [RSS] [faq] 0.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, 0.10.9, 0.10.9.1, 0.10.9.2, 0.10.10, 0.10.11, 0.10.12, 0.10.13, 0.10.14, 0.10.15, 1.0.0, 1.0.1, 1.1.0, 1.1.1, 1.2.1, 1.2.2, 1.2.3, 1.2.4, 1.2.5, 1.2.6, 1.2.7, 1.2.8, 1.2.9, 1.2.10, 1.2.11, 1.2.12, 1.2.13, 1.2.14, 1.2.15.1, 1.2.16, 1.2.17, 1.2.18, 1.2.19, 1.2.21
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.4), 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.6), vector (>=0.7 && <0.10), xml-types (==0.3.*) [details]
License GPL-3.0-only
Author John Millikin <jmillikin@gmail.com>
Maintainer John Millikin <jmillikin@gmail.com>
Category Network, Desktop
Home page https://john-millikin.com/software/haskell-dbus/
Bug tracker mailto:jmillikin@gmail.com
Source repo head: bzr branch https://john-millikin.com/branches/haskell-dbus/0.10/
this: bzr branch https://john-millikin.com/branches/haskell-dbus/0.10/ -r haskell-dbus_0.10
Uploaded by JohnMillikin at 2012-06-23T15:17:56Z
Distributions Arch:1.2.21, Debian:1.0.1, Fedora:1.2.17, LTSHaskell:1.2.17, NixOS:1.2.17, Stackage:1.2.21, openSUSE:1.2.16
Downloads 40325 total (322 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs uploaded by user
Build status unknown [no reports yet]

Modules

[Index]

Manual Flags

NameDescriptionDefault
Automatic Flags
NameDescriptionDefault
network-bytestring-610Disabled
network-bytestringEnabled

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

For package maintainers and hackage trustees

Candidates