1 D-BUS is a simple IPC library based on messages.
3 See also the file HACKING for notes of interest to developers working on D-BUS.
5 See http://www.freedesktop.org/software/dbus/ for lots of documentation,
11 A core concept of the D-BUS implementation is that "libdbus" is
12 intended to be a low-level API, similar to Xlib. Most programmers are
13 intended to use the bindings to GLib, Qt, Python, Mono, Java, or
14 whatever. These bindings have varying levels of completeness.
19 These are the dbus-specific configuration flags that can be given to
20 the ./configure program.
22 --enable-qt enable Qt-friendly client library
23 --enable-glib enable GLib-friendly client library
24 --enable-mono enable mono bindings
25 --enable-mono-docs build mono documentation (requires monodoc)
26 --enable-tests enable unit test code
27 --enable-ansi enable -ansi -pedantic gcc flags
28 --enable-verbose-mode support verbose debug mode
29 --enable-asserts include assertion checks
30 --enable-checks include sanity checks on public API
31 --enable-docs build documentation (requires Doxygen and jade)
32 --enable-gcov compile with coverage profiling instrumentation (gcc only)
33 --enable-python build python bindings (reqires Pyrex >= 0.9)
35 --with-xml=libxml/expat XML library to use
36 --with-init-scripts=redhat Style of init scripts to install
37 --with-session-socket-dir=dirname Where to put sockets for the per-login-session message bus
38 --with-test-socket-dir=dirname Where to put sockets for make check
39 --with-system-pid-file=pidfile PID file for systemwide daemon
40 --with-system-socket=filename UNIX domain socket for systemwide daemon
46 D-BUS API/ABI and protocol necessarily remain in flux until we are
47 sure it will meet the various needs it's intended to meet. This means
48 we need to see some significant sample usage in the contexts of GNOME,
49 KDE, desktop applications, and systemwide uses such as print queue
50 monitoring, hotplug events, or whatever. We need the flexibility to
51 incorporate feedback from this sample usage.
53 Once we feel confident in the protocol and the API, we will release a
54 version 1.0. At that point, the intent is:
56 - The protocol will never be broken again; any message bus should
57 work with any client forever. However, extensions are possible
58 where the protocol is extensible.
60 - If the library API is modified incompatibly, we will rename it
61 as in http://ometer.com/parallel.html - in other words,
62 it will always be possible to compile against and use the older
63 API, and apps will always get the API they expect.
65 Until 1.0 is released, feedback that requires API changes may be
66 incorporated into D-BUS. This may break the API, the ABI, the
67 protocol, or all three.
69 To avoid a huge soname, the plan is to increment the soname only
70 between official stable releases, not with every development snapshot.
71 Versions numbered 0.x are considered development snapshots.
73 Until 1.0 is released, you have to define -DDBUS_API_SUBJECT_TO_CHANGE
74 just as a safety check to be sure everyone is aware of this API/ABI
75 policy and has the right expectations.
77 We do need people to test the APIs, so please do use the development
78 snapshots of D-BUS. They are intended to work and we do actively
81 However, if you're shipping a commercial binary-only application that
82 needs to keep running on M future versions of N operating systems, you
83 might want to include your own copy of D-BUS rather than relying on
84 the installed copy, for example.