Backends#

This page lists backend features available in SyncEvolution, focusing on the ones officially supported by the main developers in the binaries available on syncevolution.org and in MeeGo. Features that might be expected, but are not supported, are also listed. The table starts with a general feature name and describes how SyncEvolution implements it, linking or pointing to further information whenever possible. Features introduced with a specific release of SyncEvolution or only available as described since a specific release are marked with that release number, like this: **0.9**. For the sake of simplicity, only stable releases are considered. They might be mentioned already before the final release date.

Feature

Implementation

Evolution Backend

Data types

contacts, events, tasks, memos

API

libebook for contacts, libecal/libical for events, tasks, memos.

Storage

In Evolution Data Server (EDS), depends on EDS backend. Local “file” backend (Berkley DB for contacts, iCalendar 2.0 .ics file for others) is tested, uses vCard 3.0 and iCalendar 2.0 VEVENT/VTODO/VJOURNAL. Exchange <= 2003 worked at some point via EDS Exchange Connector. MAPI backend for Exchange 2007 too unstable. CouchDB backend (contacts) used to fail due to lack of REV support, may work now. LDAP backend tested by users, with uncertain success.

Change tracking

Via REV property (contacts) and LAST-MODIFIED (events/tasks/memos). Currently requires reading all items at start of sync.

File Backend

Data types

contacts, events, tasks, memos

API

POSIX

Storage

One file per item in a single directory per database. Native format can be any of those supported by the core engine.

Change tracking

Via file modification date. No need to read data at start of sync.

1.2: CalDAV/CardDAV

Data types

contacts, events

API

HTTP via libneon

Storage

remote WebDAV collections

Change tracking

Via the eTag of each resource

sqlite backend

Data types

contacts

API

libsqlite

Storage

Custom database schema, intentionally kept simple (one row per contact). Demonstrates how to map from field list to internal format without backend text representation.

Change tracking

Via modification time stamp.

XMLRPC Backend

Data types

contacts, events, tasks, memos?

API

SOAP API that mimics the C++ TrackingSyncSource API, defined and implemented by M-otien.

Storage

on remote server

Change tracking

Via revision string.

Maemo 5 Calendar Backend

Data types

events

API

http://maemo.gitorious.org/calendar-backend

Storage

unknown, using iCalendar 2.0 format?

Change tracking

?

Apple Mac OS Addressbook Backend

Data types

contacts

API

AddressBook/ABAddressBookC.h

Storage

?

Change Tracking

modification time, requires reading all contacts