packages feed

dbus-core-0.9: src/introduction.anansi

\section{Introduction}

On modern desktop systems, applications need to communicate with one another;
for example, a movie player can disable the screensaver, or a music player can
be notified when the user inserts a CD-ROM. In the early years of the Linux
desktop, this Inter-Process Communication (IPC) was performed through a
variety of ad hoc mechanisms. D-Bus is a simple, standardized IPC mechanism
intended to replace and obsolete all of these older technologies.

In contrast to earlier IPC protocols, which are typically byte-based, D-Bus
allows applications to send strongly-typed data structures named
{\em messages}. Applications may expose an object-oriented API to the user's
session, the entire system, or even remote systems. This brings the full power
of object-oriented programming to IPC; for example, many applications can
implement a standardized {\em interface} to seamlessly interoperate with any
client written against that interface.

\begin{center}
\includegraphics{latex/figure_1.eps}
\end{center}

This library is an implementation of the D-Bus protocol in pure Haskell. It
can be used to add D-Bus support to Haskell applications, without the awkward
interfaces common to foreign bindings. The literate portions (the part you're
reading right now) are written for intermediate or advanced Haskell
programmers, who may not be familiar with D-Bus. It might also be of use to
programmers interested in implementing D-Bus in other functional languages,
such as ML.

Documentation is licensed under CC-BY-SA 3.0. Source code is
licensed under the GNU GPL v3 or later:

\begin{quote}
:d copyright
-- Copyright (C) 2009-2011 John Millikin <jmillikin@gmail.com>
-- 
-- This program is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation, either version 3 of the License, or
-- any later version.
-- 
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-- GNU General Public License for more details.
-- 
-- You should have received a copy of the GNU General Public License
-- along with this program.  If not, see <http://www.gnu.org/licenses/>.
:
\end{quote}