We are proud to announce the release of the PubSubHubbub specification version 0.4:
http://pubsubhubbub.googlecode.com/svn/trunk/pubsubhubbub-core-0.4.html.
PubSubHubbub 0.4 brings many updates and enhancements, such as:
- Content providers can use Link HTTP headers with rel="hub" when serving PubSubHubbub enabled content. This change makes PubSubHubbub suitable for distributing non-XML content, such as images or JSON.
- Hubs can notify subscribers when their subscriptions get disabled (for example, when a blog gets deleted).
- Breaking change: “sync” mode of subscription verification has been removed.
- Breaking change: Permanent subscriptions and Hub-initiated subscription renewals have been removed.
- Breaking change: hub.verify_token has been removed.
- The specification no longer dictates a specific protocol between the Publisher and the Hub.
There are several incompatibilities between 0.3 and 0.4. When implementing a PubSubHubbub subscriber, follow the
robustness principle for best results: Be conservative in what you do, be liberal in what you accept from others.
- Don’t use “sync” mode of subscription verification because 0.4 compliant Hubs are not required to support it.
- Don’t rely on the Hub-initiated subscription renewals (a.k.a. permanent subscriptions) as they have been removed from the 0.4 spec.
- Similarly, don't use hub.verify_token. Instead, use different callback URLs when subscribing to different feeds.
- Don’t reject distribution requests without the Link HTTP headers because not all Hubs have been upgraded to the 0.4 spec.
When implementing a publisher:
- Embed <link rel=”hub”> and <link rel=”self”> in Atom and RSS feeds. All Hubs understand them.
- Use Link HTTP headers with rel=”hub” and rel=”self” when serving PubSubHubbub enabled content.
- Notify your designated Hub about changes to all PubSubHubbub enabled resources. Check your Hub’s documentation for details.
Special thanks go to the chief editor Julien Genestoux who's been leading the development of the version 0.4.
Happy subscribing and publishing!
Roman Perepelitsa,
On behalf of the PubSubHubbub team at Google.