Skip to content

gofeed

2,400 2 41 MIT
v1.3.0 (1 Mar 2024) Apr 20 2016 58.1 thousand (month)

The gofeed library is a robust feed parser that supports parsing both RSS, Atom and JSON feeds. The library provides a universal gofeed.Parser that will parse and convert all feed types into a hybrid gofeed.Feed model.

You also have the option of utilizing the feed specific atom.Parser or rss.Parser or json.Parser parsers which generate atom. Feed , rss.Feed and json.Feed respectively.

Supported feed types:

  • RSS 0.90
  • Netscape RSS 0.91
  • Userland RSS 0.91
  • RSS 0.92
  • RSS 0.93
  • RSS 0.94
  • RSS 1.0
  • RSS 2.0
  • Atom 0.3
  • Atom 1.0
  • JSON 1.0
  • JSON 1.1

Example Use


// parse feed from URL
fp := gofeed.NewParser()
fp.UserAgent = "MyCustomAgent 1.0"  // we can modify http client with custom headers etc.
feed, _ := fp.ParseURL("http://feeds.twit.tv/twit.xml")
fmt.Println(feed.Title)

// parse feed from string
feedData := `<rss version="2.0">
<channel>
<title>Sample Feed</title>
</channel>
</rss>`
fp := gofeed.NewParser()
feed, _ := fp.ParseString(feedData)
fmt.Println(feed.Title)

// or file
file, _ := os.Open("/path/to/a/file.xml")
defer file.Close()
fp := gofeed.NewParser()
feed, _ := fp.Parse(file)
fmt.Println(feed.Title)

Alternatives / Similar


Other Languages

1,595 2024.2.26 (2 months ago) Dec 14 2008 compare
13,679 0.2.8 (5 years ago) Dec 28 2012 compare
2,911 1.9.0 (9 days ago) Jul 17 2019 compare
2,572 0.8.1 (3 years ago) Jun 30 2011 compare
3,429 0.11.0 (1 year, 6 months ago) Oct 20 2013 compare
823 0.16.0 (10 months ago) Oct 27 2015 compare
172 2.0.7 (1 year, 6 months ago) Dec 11 2020 compare
10,534 1.1.9 (5 years ago) Aug 24 2018 compare