dbus-1.3.3: dbus.cabal
name: dbus
version: 1.3.3
license: Apache-2.0
license-file: license.txt
author: John Millikin <john@john-millikin.com>
maintainer: Andrey Sverdlichenko <blaze@rusty.zone>
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.13
, cereal < 0.6
, conduit >= 1.3.0 && < 1.4
, containers < 0.7
, deepseq < 1.6
, 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.22
, text < 2.2
, th-lift < 0.9
, transformers < 0.7
, unix < 2.9
, 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.13
, 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.16
, random < 1.3
, resourcet < 1.4
, tasty < 1.6
, tasty-hunit < 0.11
, tasty-quickcheck < 0.11
, temporary >= 1.3 && < 1.4
, text < 2.2
, transformers < 0.7
, unix < 2.9
, 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