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

Modules

[Index]

  • DBus
    • DBus.Client
    • DBus.Introspection
    • DBus.Socket
    • DBus.Transport

Flags

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

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 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, 1.2.22, 1.2.23, 1.2.24, 1.2.25, 1.2.26, 1.2.27, 1.2.28, 1.2.29, 1.3.0, 1.3.1, 1.3.2
Dependencies base (>=4.0 && <5.0), bytestring (>=0.9), cereal (>=0.3.4 && <0.5), containers (>=0.1 && <0.6), libxml-sax (>=0.7 && <0.8), network (>=2.2), network-bytestring (>=0.1.2 && <0.2), parsec (>=2.0 && <3.2), random (>=1.0 && <1.1), 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 && <0.4) [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: git clone https://john-millikin.com/code/haskell-dbus/
this: git clone https://john-millikin.com/code/haskell-dbus/(tag haskell-dbus_0.10.4)
Uploaded by JohnMillikin at 2013-11-04T05:12:32Z
Distributions Arch:1.3.1, Debian:1.2.16, Fedora:1.2.29, LTSHaskell:1.3.2, NixOS:1.3.2, Stackage:1.3.2, openSUSE:1.3.2
Reverse Dependencies 26 direct, 2 indirect [details]
Downloads 48053 total (205 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]