summaryrefslogtreecommitdiff
path: root/README
blob: 19b6fa33836509b898d713e7a66e4088a77ec745 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
NOTE: This is currently an experimental implementation intended to gather
feedback. Especially see the DAPI-0.1 announcement mail on the mailing
list (http://lists.freedesktop.org/archives/portland/2006-March/000267.html)
for details.




The Portland Project Desktop API (DAPI)
=======================================
DAPI is a general purpose desktop API that allows uniform access to
desktop functionality like sending email, turning screensavers on/off,
opening urls, and so forth.  These are done in different ways, depending
on the user's distro and desktop environment; DAPI gives software
developers a single, uniform way to perform them.

The main motivation for DAPI is to simplify ISV's lives.  We want to see
more commercial-class software available for the Linux desktop, but
recognize that the vast array of choices available to the Linux user
presents the ISV with the problem of how to support all these different
ways of doing things?  With DAPI, we plan to address this problem by
giving the ISV a convenience library that wrappers common functionality
they need, that is not yet standardized across desktop environments.

DAPI is implemented as a daemon that runs on the user's desktop and
allows applications to invoke desktop functions through an API.  


Usage
=====
DAPI consists of two components: A daemon, and a library (libdapi.la)
that links to the application.  The library handles the IPC
(socket) communication with the daemon and implements the API.

There are several different "flavors" of daemons, each particular to a
given desktop environment (dapi_kde, dapi_generic, etc.), but they all
provide the same API.  This way, once you link the library in, you can
communicate with any daemon.

ISV is expected to statically link the DAPI library. Daemon should
be provided by the desktop environment in which the application runs.
Currently (March 2006) no distros ship DAPI, so it may be necessary
to ship separately daemons for these desktop environments. ISVs may
also consider shipping a generic daemon together with the application
as a fallback.

The doc/ directory contains a description of the implemented calls
and other developer documentation. Also, the tests/ directory will serve
as a set of basic examples on using the library.  Other directories contain
the library and daemon implementations.


Future
======
DAPI is very much an early work in progress, and is still in 'prototype'
stage, so please expect that lots *will* change.  We hope to expand the
functionality to include much more of what ISV's need, so if something
appears to be missing, please let us know (patches welcome too!)

The plan is for the desktop environments to provide their own daemon
implementations, with applications including only the generic daemon to
use if no other daemon is already running.

Web: http://portland.freedesktop.org/
Mailing list: http://lists.freedesktop.org/mailman/listinfo/portland
Source code: cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/portland co portland/dapi
Online repository: http://cvs.freedesktop.org/portland/portland/dapi