- Rodrigo Moya (rodrigo AT gnome-db.org)
- Stuart Langridge (stuart.langridge AT canonical.com)
- Vincenzo di Somma (vincenzo.di.somma AT canonical.com)
Purpose
Integration of CouchDB 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 or Midgard)
Software
Applications implementing the CouchDB replication protocol:
- CouchDB
Midgard Development tools:
couchdb-glib is a GLib-based API implementing the CouchDB 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) via GObject introspection.
- desktopcouch.records 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 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: used by Tomboy
- Bookmarks: used by Bindwood for Firefox
- Contacts: used by Evolution, Akonadi
- Tasks: used by Evolution
- ?Internal Replication: used by desktopcouch itself to maintain replication peerage.
Reserved database names
- management
- users
Documentation
See the desktopcouch documentation page.