Library to parse Atom/RSS feeds?

I am looking for a library to fetch and parse Atom/RSS feeds. Libraries like this exist for other languages:

Do you know of a similar library for Rust?

You could look here: https://crates.io/keywords/rss. What about feed-rss?

The libraries listed on Crates.io are either deprecated, not maintained, without documentation or only usable to serialize to Atom/RSS.

feed-rs is two years old and has no documentation. I was hoping for something more current and maintained.

If there isn't anything on crates.io that fits your need, you are likely out of luck.

1 Like

I've been using rss and atom_syndication to parse RSS/Atom feeds for years. I've had no major issues. The descriptions for both crates say that they serialize to RSS/Atom but they parse it as well.

3 Likes

I picked up feed-rs a few months ago from the original maintainer, and have been slowly cleaning it up (2018 edition, updated dependencies, broader tests). Was hoping to finish off the updates over the Christmas period and push up a new version.

(edit)
btw, as a contrast to rss and atom_syndication I was keen to maintain feed-rs because it gives you a single API to parse all formats (Atom, RSS1, RSS2 etc).

4 Likes

I finally got around to publishing 0.2.0.

Its my first "real" Rust project - I wanted something a little more than the exercism examples to learn some Rust, so its probably full of mistakes and poor code but clippy seems happy. Key changes:

  • 2018 edition
  • Align feed model around Atom spec
  • Switch to event-based parser (xml-rs) to reduce peak memory usage and use of clone()
  • Expanded test coverage
  • Documentation improvements

I do plan on using this in a different project (a replacement for fever, a web+app based RSS/Atom reader that is no longer maintained), so I'm expecting to issue a few more releases to feed-rs to address bugs, handle more of the RSS spec etc.

2 Likes

Thank you! I will try your version.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.