name: dbus version: 1.2.27 license: Apache-2.0 license-file: license.txt author: John Millikin maintainer: Andrey Sverdlichenko build-type: Simple cabal-version: >= 1.10 category: Network, Desktop stability: experimental homepage: https://github.com/rblaze/haskell-dbus#readme synopsis: A client library for the D-Bus IPC system. description: 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 extra-source-files: examples/dbus-monitor.hs examples/export.hs examples/introspect.hs examples/list-names.hs idlxml/dbus.xml source-repository head type: git location: https://github.com/rblaze/haskell-dbus library default-language: Haskell2010 ghc-options: -W -Wall hs-source-dirs: lib build-depends: base >=4.16 && <5 , bytestring < 0.12 , cereal < 0.6 , conduit >= 1.3.0 && < 1.4 , containers < 0.7 , deepseq < 1.5 , exceptions < 0.11 , filepath < 1.5 , lens < 5.3 , network >= 3.1.2.1 && < 3.2 , parsec < 3.2 , random < 1.3 , split < 0.3 , template-haskell >= 2.18 && < 2.20 , text < 2.1 , th-lift < 0.9 , transformers < 0.6 , unix < 2.8 , vector < 0.14 , xml-conduit >= 1.9.0.0 && < 1.10.0.0 , xml-types < 0.4 exposed-modules: DBus DBus.Client DBus.Generation DBus.Internal.Address DBus.Internal.Message DBus.Internal.Types DBus.Internal.Wire DBus.Introspection DBus.Introspection.Parse DBus.Introspection.Render DBus.Introspection.Types DBus.Socket DBus.TH DBus.Transport test-suite dbus_tests type: exitcode-stdio-1.0 main-is: DBusTests.hs hs-source-dirs: tests default-language: Haskell2010 ghc-options: -W -Wall -fno-warn-orphans build-depends: dbus , base >=4 && <5 , bytestring < 0.12 , cereal < 0.6 , containers < 0.7 , directory < 1.4 , extra < 1.8 , filepath < 1.5 , network >= 3.1.2.1 && < 3.2 , parsec < 3.2 , process < 1.7 , QuickCheck < 2.15 , random < 1.3 , resourcet < 1.4 , tasty < 1.5 , tasty-hunit < 0.11 , tasty-quickcheck < 0.11 , text < 2.1 , transformers < 0.6 , unix < 2.8 , vector < 0.14 other-modules: DBusTests.Address DBusTests.BusName DBusTests.Client DBusTests.ErrorName DBusTests.Generation DBusTests.Integration DBusTests.InterfaceName DBusTests.Introspection DBusTests.MemberName DBusTests.Message DBusTests.ObjectPath DBusTests.Serialization DBusTests.Signature DBusTests.Socket DBusTests.TH DBusTests.Transport DBusTests.Util DBusTests.Variant DBusTests.Wire benchmark dbus_benchmarks type: exitcode-stdio-1.0 main-is: DBusBenchmarks.hs hs-source-dirs: benchmarks default-language: Haskell2010 ghc-options: -Wall -fno-warn-orphans build-depends: dbus , base >=4 && <5 , criterion < 1.7