From: http://pirules.org/forum/index.php/topic,589.0.html
Hey Josh,
I'm creating a new thread for this Feature Request to make it easier to track, and will incorporate everything from the thread it originated from.
Ok, so this is a feature request to make gContactSync capable of syncing to a standard file format - like JSON, a custom XML format, or even LDIF or VCF - and then extending that capability to be able to sync to non-google/privately hosted local and/or remote filesystems, ie, local/networked locations, and remote filesystems using something like WebDAV and FTP.
The first part would be selecting and defining the most robust, stable file format for storing the sync'd data itself.
Next, allow for the ability to sync to this format via any one of multiple 'account type' plugins.
For testing purposes, you could maybe start off with one: WebDAV - which I think is what you were basically describing in the original thread, using Apache+PHP+MySQL.
I think simply supporting the generic WebDAV protocol is the best, then the back end can be implemented using whatever tools the user wants - in your case, Apache+PHP+MySQL, but someone else for example could use lighttpd and PostgreSQL.
I'd also like to support for local network syncing via a local/network filesystem path (ie, on Windows, you'd need to support UNC style "\server\share" paths as well as plain drive letters (whether local or mapped drives (UNC paths mapped to drive letters - then however linux does this too), but if you don't want to do this part, as long as this could be implemented via a plugin, that would be awesome.
Then you (or anyone else with the coding skills) could start adding support for new account types - ie, FTP, Google Drive, etc, as time (and motivation) permitted...
As always, Josh, thanks for gContactSync, and thanks for considering new features like this one!
Charles