OBus is a pure ocaml implementation of D-Bus.

url: https://forge.ocamlcore.org/projects/obus/

* Requirements:

  obus depends on the following packages:

  lwt:        http://www.ocsigen.org/install/lwt
  type-conv:  http://www.ocaml.info/home/ocaml_sources.html#type-conv
  xmlm:       http://erratique.ch/software/xmlm

  It also requires at least ocaml version 3.12.

* Installation:

  To compile and install OBus just type:

  $ ocaml setup.ml -configure
  $ ocaml setup.ml -build
  $ ocaml setup.ml -install

  Optionally you can also build the documentation with:

  $ ocaml setup.ml -doc

  If you get the development version of obus you must obtain oasis
  (http://oasis.forge.ocamlcore.org/).

* Using the library

  OBus install the following packages:

  - obus:
      the core library, implementing the D-Bus protocol,

  - obus.notification:
      interface to the freedesktop Notification service,

  - obus.hal:
      interface to the freedesktop Hal service,

  - obus.upower:
      interface to the freedesktop UPower service,

  - obus.udisks:
      interface to the freedesktop UDisks service,

  - obus.policykit:
      interface to the freedesktop PolicyKit servie.

* Using tools:

  There are several tools provided in the obus distribution:

  - obus-dump, to execute a command and dump all messages that goes
    throug the session and/or system message bus,

  - obus-introspect which can recursively introspect a D-Bus service,

  - obus-gen-interface, to convert D-Bus introspection files into
    ocaml definition modules,

  - obus-gen-client and obus-gen-server which can generate template
    for using or implementing D-Bus servies,

  - obus-xml2idl and obus-idl2xml to convert xml introspection
    documents to the obus idl format, and vice versa.

  There are manual pages for all this tools.

  The caml files generated by obus-gen-client and obus-gen-server are
  meant to be edited and adapted. In practice introspections files
  contains only marshaling informations so it is often not sufficient
  for creating a usable binding.

  Here is a simple example of use of the tools:

  $ obus-introspect org.freedesktop.Notifications /org/freedesktop/Notifications > notif.xml
  $ obus-gen-interface notif.xml
  $ obus-gen-client notif.xml

* Development:

  The last development version of obus can always be found in the
  darcs repository hosted at darcs.ocamlcore.org:

  $ darcs get http://darcs.ocamlcore.org/repos/obus
