For a long time I have been disappointed in the Atom and RSS libraries available in Ruby. I always had some small issue like it wouldn't normalize the way I wanted it to, it wouldn't grab feeds the way I wanted it to, or it was just plain slow. So I set about creating yet another Ruby feed parsing library. The result of this effort is Feedzirra: a feed (Atom and RSS) fetching and parsing library for Ruby.
One of the primary goals of Feedzirra is speed. I wanted it to be able to fetch and parse many feeds quickly. Examples with libraries that show getting a single feed are great, but I'm going to be using it to get thousands. With that in mind I spent time looking for the fastest way to parse feeds (nokogiri and libxml) and the fastest way to get feeds (taf2-curb and libcurl). I also built in logic for updating feeds that speeds things up even more, saves on bandwidth costs, and makes it dead simple to see what's new in an updated feed.
A second design consideration was that I wanted the library to be extensible and customizable. This means that you can add custom parsers to Feedzirra to handle different feed types (like microformats, for example). What this also means is that if you find a bug in the parsing on a specific feed, you can write a parser (should take less than 20 lines of code) and use it with Feedzirra while you wait for me or a contributor to get the bug fix in. Feedzirra also allows you to define callback behavior after success or failure of fetching a feed.
There are few missing things like support for gzip and deflate encoding and Ruby 1.9.1 testing, but all the basic pieces are there and the others are soon to follow. It's ready for use. For more information and benchmarks against other methods you can look at the readme for Feedzirra on Github. If you have comments on the API or if you find bugs on feeds in the wild, please comment in the Feedzirra discussion group. I'm eager to see this thing in use and want to make sure that it's rock solid. Special thanks to Pat Nakajima for looking at the code and helping to refactor a bit of it.
In the meantime, here's a gist to give you an idea of what Feedzirra can do and what the interface looks like.