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

[ apache, desktop, gpl, 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 [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
Dependencies base (==4.*), bytestring (<0.11), cereal (<0.6), conduit (>=1.3.0 && <1.4), containers (<0.7), deepseq (<1.5), exceptions (<0.11), filepath (<1.5), lens (<4.18), network (==2.8.0.0 || >=3.0.1.0 && <3.1), parsec (<3.2), random (<1.2), split (<0.3), template-haskell (<2.15), text (<1.3), th-lift (<0.8), transformers (<0.6), unix (<2.8), vector (<0.13), xml-conduit (<1.9), xml-types (<0.4) [details]
License Apache-2.0
Author John Millikin <john@john-millikin.com>
Maintainer Andrey Sverdlichenko <blaze@ruddy.ru>
Category Network, Desktop
Home page https://github.com/rblaze/haskell-dbus#readme
Source repo head: git clone https://github.com/rblaze/haskell-dbus
Uploaded by blaze at Fri Feb 15 03:26:07 UTC 2019
Distributions Arch:1.2.3, Debian:1.0.1, Fedora:0.10.15, LTSHaskell:1.2.4, NixOS:1.2.3, Stackage:1.2.4, openSUSE:1.2.3
Downloads 16615 total (800 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs available [build log]
Last success reported on 2019-02-15 [all 1 reports]

Modules

[Index] [Quick Jump]

Downloads

Maintainer's Corner

For package maintainers and hackage trustees