summaryrefslogtreecommitdiff
path: root/Specifications/desktopcouch.mdwn
blob: 603bd3086b7d90f5ac1c1bc559265c425117bc5f (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

* Rodrigo Moya (rodrigo AT gnome-db.org) 
* Stuart Langridge (stuart.langridge AT canonical.com) 
* Vincenzo di Somma (vincenzo.di.somma AT canonical.com) 
[[!toc ]] 


### Purpose

Integration of [[CouchDB|http://couchdb.apache.org]] storage into desktop applications, for automatic replication and synchronization of data between computers. 


### Examples

* Store notes, contacts, calendars, bookmarks, etc on a central storage 
* Replicate and synchronize that data from users' desktops to several machines 
* Provide servers with the ability to provide a web interface to display and manage that data from a browser everywhere (like [[Ubuntu One|http://ubuntuone.com]] or [[Midgard|http://www.midgard-project.org/]]) 

### Software

Applications implementing the CouchDB replication protocol: 

* [[CouchDB|http://couchdb.apache.org]] 
* [[Midgard|http://www.midgard-project.org/]] 
Development tools: 

* [[couchdb-glib|https://launchpad.net/couchdb-glib]] is a GLib-based API implementing the [[CouchDB REST API|http://wiki.apache.org/couchdb/HTTP_REST_API]] plus some top-level utilities to make things easier for developers. With bindings for other languages (full list at [[http://live.gnome.org/GObjectIntrospection/Users|http://live.gnome.org/GObjectIntrospection/Users]]) via GObject introspection. 
* [[desktopcouch.records|https://launchpad.net/desktopcouch]] is a Python API to allow Python applications to connect to a Desktop CouchDB. The desktopcouch project which it is part of manages all the infrastructure described in this specification. 

### Formats

Being this a vendor independent solution, anyone can set up a [[CouchDB|http://couchdb.apache.org]] instance on their server and allow others to replicate/synchronize their data there. but for this to work correctly, we need standard formats for every specific record type that is going to be stored in the database. The following links get you to pages describing that format for the following record types: 

* [[Notes|Specifications/desktopcouch/note]]: used by [[Tomboy|http://projects.gnome.org/tomboy/]] 
* [[Bookmarks|Specifications/desktopcouch/bookmark]]: used by [[Bindwood|http://launchpad.net/bindwood]] for Firefox 
* [[Contacts|Specifications/desktopcouch/contact]]: used by [[Evolution|http://projects.gnome.org/evolution/]], Akonadi 
* [[Tasks|Specifications/desktopcouch/task]]: used by [[Evolution|http://projects.gnome.org/evolution/]] 
* [[Internal Replication|Specifications/desktopcouch/replication]]: used by desktopcouch itself to maintain replication peerage. 

### Reserved database names

* management 
* users 

### Documentation

See the [[desktopcouch documentation page|Specifications/desktopcouch/Documentation]]. 

---

 [[CategoryHomepage|CategoryHomepage]]