udbus: Small DBus implementation

[ bsd3, library, network ] [ Propose Tags ]

Small and flexible implementation of the dbus protocol.


[Skip to Readme]

Modules

[Index]

Flags

Automatic Flags
NameDescriptionDefault
test

Build unit test

Disabled
executable

Build the executable

Disabled

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

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.1, 0.1.1, 0.2.0, 0.2.1, 0.2.2, 0.2.3
Dependencies base (>=3 && <4.8), binary, bytestring, cereal (>=0.3.0), ghc-prim, mtl, network (<2.4), unix [details]
License BSD-3-Clause
Copyright Vincent Hanquez <vincent@snarc.org>
Author Vincent Hanquez <vincent@snarc.org>
Maintainer Vincent Hanquez <vincent@snarc.org>
Revised Revision 1 made by HerbertValerioRiedel at 2018-10-01T17:51:53Z
Category Network
Home page http://github.com/vincenthz/hs-udbus
Source repo head: git clone git://github.com/vincenthz/hs-udbus
Uploaded by VincentHanquez at 2011-07-24T11:04:23Z
Distributions
Reverse Dependencies 3 direct, 0 indirect [details]
Executables dbus
Downloads 4597 total (22 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]

Readme for udbus-0.1

[back to package description]

hs-udbus

The udbus haskell package provides a BSD implementation of the DBus protocol in pure Haskell, giving access to a simple lowlevel interface. The interfaces are coherent and basic, sacrificing some ease of use (in using more appropriate haskell types for dbus array for example) in favor of being able to write generated code easily.

The code doesn't check if the object values (objectpath, interface, etc) are appropriates on sending, nor on receiving. The dbus daemon should have prevented invalid values to be received, and for sending, the user need to take extra care of the values sent.

Dbus startup negotiation need to be done properly by the user, that includes sending the hello method call at startup (see Example).

TODO & Caveats

Dbus endianness is not handle properly to serialize message if the user choose big endian. User should always select little endian regardless of the actual machine architecture. However, receiving message in both endianness is supported.

Double are expected to be handled as IEEE754 by the compiler. Serialization of double is handled in a GHC specific way (making the package GHC specific), expecting that any architecture represent double the IEEE754 way. So far, this seems to be true for every architecture supported by GHC.

Stability

While the low level interfaces should remains the same, it's not unexpected that some high level interface would be grafted on top of the actual interfaces.

Example

A simple example on how to use the interfaces is available at the root of the package as DBus.hs