Syndication has become and inseparable part of the internet. There are two major syndication formats that exist today – RSS 2.0 (Really Simple Syndication) and Atom 1.0 (Atom Syndication Format). While they achieve the same end result, there are differences. This post attempts to enable you to decide which is more suited to your publishing.
RSS 2.0 is a frozen specification copyrighted by Harvard and Atom 1.0 is a specified in RFC4287. Atom came about as a result of pursuit to fix shortcoming of RSS since RSS was a frozen format. The table below lists the differences in the two specifications/standards:
|Atom 1.0||RSS 2.0||Who wins?|
|Content Model||Allows text, escaped HTML, well-formed XHTML, XML, base-64 encoded binary or pointer to web content outside the feed.||Text or Escaped HTML||This is a major advantage for Atom, writing escaped HTML affects the readability of RSS feeds|
|Partial Content||Has separate <summary> or <content> tags.||Has a <description> field. This could contain complete content or just synopsis but has no way of identifying what it contains.||This is another win for Atom, helps you have a synopsis and complete view inside a feed reader|
|Auto Discovery||Uses the MIME Type application/atom+xml which is registered with IANA. In addition the feed has a self link to enable auto subscription in readers||The MIME Type application/rss+xml is often used but not recognized by IANA||Having a registered MIME Type and auto subscription really helps discovery. Another Atom win.|
|Format Flexibility||Atom syndication format allows entries linking to the feed or standalone entries||RSS only recognizes a <rss> document.||This is also an Atom win, having standalone entries enables scenarios like linking to entries only.|
|Extensibility||Atom defines a well-defined structure to extend the default namespace and has specific guidelines on readers should interpret these.||RSS has to fixed namespace, however you could include external XML namespaces.||Atom has a slight advantage here as external namespaces extensions in RSS are not easily discoverable. In Atom’s case these extensions have a corresponding namespace tag|
|Languages||Atom uses xml:lang for language specificity||RSS has a separate <language> tag for language specificity||No one.|
|Encryption||Atom allows the option to encrypt entries using XML Encryption or XML Digital Signature. In addition the feed could be encrypted entire feed using standard web encryption techniques||RSS only allows encrypting using standard web encryption techniques.||Atom has extra level of encryption possible.|
|Adoption||Most sites that publish both RSS and Atom feeds.||Most sites that publish both RSS and Atom feeds.||RSS has an advantage of being the first mover, the term RSS has become synonymous with syndication.|
|Modularity||All elements part of Atom’s namespace can be used outside Atom’s context due to way it was designed||RSS elements cannot be used outside the context of RSS||This has proved to be the one of the major factors of Atom’s popularity and its used in data interactions like those enabled by Google GData|
As you might have realized that Atom has considerable benefits over RSS. More and more services online are using Atom as more than just a feed format. Google’s GData and Microsoft’s Project Astoria are great examples and testimonies of Atom 1.0’s strengths as a format. They extend its namespace and harness the capabilities of Atom Publishing Protocol to pass data between their services.
While, I was writing, I realized that I was still publishing an RSS 2.0 feed for my blog (default supported by Drupal). I switched it to Atom 1.0. Have you? My recommendation to you would be switch to Atom as your base feed. Having said that, RSS is still very popular and consumed by many, it is good to retain your RSS feed too. Atom preserves most aspects of RSS so a simple transform (e,g, using XSLT) should be able to help you create and RSS feed from the Atom one.
If you know more examples that demonstrate Atom / RSS’s strength please post your comments below. I would love to hear from you.