FeedSync for Atom and RSS, previouslySimple Sharing Extensions, are extensions toRSS andAtom feed formats designed to enable the bi-directional synchronization of information by using a variety of data sources. Initially developed byRay Ozzie,Chief Software Architect atMicrosoft, it is now maintained byJack Ozzie,George Moromisato,Matt Augustine,Paresh Suthar andSteven Lees.Dave Winer, the designer of theUserLand Software RSS specification variants, has given input for the specifications.
The last version of FeedSync for Atom and RSS specification is 1.02.[1]FeedSync for Atom and RSS is licensed under theCreative Commons Attribution-ShareAlike License (version 2.5) and theMicrosoft Open Specification Promise.
The scope of FeedSync for Atom and RSS is to define the minimum extensions necessary to enable loosely cooperating applications to use Atom and RSS feeds as the basis for item sharing – that is, the bi-directional, asynchronous synchronization of new and changed items amongst two or more cross-subscribed feeds.
Note that while much of FeedSync is currently defined in terms of Atom and RSS feeds, at its core what FeedSync strictly requires is:
This means that FeedSync can be implemented by almost any programming language have its metadata represented in many structured data formats.
<?xml version="1.0" encoding="utf-8"?><rssversion="2.0"xmlns:sx="http://feedsync.org/2007/feedsync"><channel><title>ToDoList</title><description>Alistofitemstodo</description><link>https://www.example.com/something/foo/bar/</link><sx:sharingsince="2005-02-13T18:30:02Z"until="2005-05-23T18:30:02Z"><sx:relatedlink="[http://example.com/all.xml]{{dead link|date=December 2016 |bot=InternetArchiveBot |fix-attempted=yes }}"type="complete"/><sx:relatedlink="[http://example.com/B.xml]{{dead link|date=December 2016 |bot=InternetArchiveBot |fix-attempted=yes }}"type="aggregated"title="To Do List (Jacks Copy)"/></sx:sharing><item><title>Buygroceries</title><description>Getmilk,eggs,butterandbread</description><sx:syncid="item_1_myapp_2005-05-21T11:43:33Z"updates="3"><sx:historysequence="3"when="2005-05-21T11:43:33Z"by="JEO2000"/><sx:historysequence="2"when="2005-05-21T10:43:33Z"by="REO1750"/><sx:historysequence="1"when="2005-05-21T09:43:33Z"by="REO1750"/></sx:sync></item></channel></rss>
<?xml version="1.0" encoding="utf-8"?><feedxmlns="http://www.w3.org/2005/Atom"xmlns:sx="http://feedsync.org/2007/feedsync"><title>ToDoList</title><subtitle>Alistofitemstodo</subtitle><linkrel="self"href="http://example.com/partial.xml"/{{deadlink|date=December2016|bot=InternetArchiveBot|fix-attempted=yes}}><author><name>RayOzzie</name></author><updated>2005-05-21T11:43:33Z</updated><id>urn:uuid:60a76c80-d399-11d9-b93C-0003939e0aaa</id><sx:sharingsince="2005-02-13T18:30:02Z"until="2005-05-23T18:30:02Z"><sx:relatedlink="[http://example.com/all.xml]{{dead link|date=December 2016 |bot=InternetArchiveBot |fix-attempted=yes }}"type="complete"/><sx:relatedlink="[http://example.com/B.xml]{{dead link|date=December 2016 |bot=InternetArchiveBot |fix-attempted=yes }}"type="aggregated"title="To Do List (Jacks Copy)"/></sx:sharing><entry><title>Buygroceries</title><content>Getmilk,eggs,butterandbread</content><id>urn:uuid:60a76c80-d399-11d9-b93C-0003939e0aa0</id><author><name>RayOzzie</name></author><updated>2005-05-21T11:43:33Z</updated><sx:syncid="item_1_myapp_2005-05-21T11:43:33Z"updates="3"><sx:historysequence="3"when="2005-05-21T11:43:33Z"by="JEO2000"/><sx:historysequence="2"when="2005-05-21T10:43:33Z"by="REO1750"/><sx:historysequence="1"when="2005-05-21T09:43:33Z"by="REO1750"/></sx:sync></entry></feed>
<?xml version="1.0" encoding="utf-8"?><item><subject>Buygroceries</subject><body>Getmilkandeggs</body><sx:syncid="item_1_myapp_2005-05-21T11:43:33Z"updates="1"><sx:historysequence="1"when="2005-05-21T09:43:33Z"by="REO1750"/></sx:sync></item>
{"title":"Buy groceries","description":"Get milk and eggs","sync":{"id":"item_1_myapp_2005-05-21T11:43:33Z","updates":"1","history":[{"sequence":"1","when":"2005-05-21T09:43:33Z","by":"REO1750"}]}}
There are several examples of "real world" use of FeedSync feeds to synchronize data between applications.
This prototype developer service is an implementation of HTTP-based FeedSync endpoint. Applications can use HTTP GET and POST commands to synchronize feeds, where the latter performs the FeedSync merge operation on the feed hosted by the FeedSync Service. The service is not active anymore.
FeedSync feeds were used extensively at the Strong Angel III exercise in August 2006 as a lightweight middle-ware to link applications fromMicrosoft,Google,ESRI and others on desktops and mobile devices. The service is not active anymore.
The comprehensive Java RSS project,ROME, is an implementation of the FeedSync specification since it creates aJava layer for developers to create apps that will use the FeedSync service.
Mesh4x, an open-source set of libraries, tools, applications and services for mesh-based applications, uses FeedSync as the versioning standard, and implements a Feedsync-inspired packet-based protocol to synchronize data over SMS text messages.