Skip to content

gofeed

2,299 2 43 MIT
v1.2.1 (4 Mar 2023) 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,518 2020.1.16 (3 years ago) Dec 14 2008 compare
783 0.16.0 (4 months ago) Oct 27 2015 compare
2,210 1.6.2 (2 months ago) Jul 17 2019 compare
13,294 0.2.8 (5 years ago) Dec 28 2012 compare
2,386 0.8.1 (3 years ago) Jun 30 2011 compare
3,289 0.11.0 (1 year, 1 month ago) Oct 20 2013 compare
10,120 1.1.9 (5 years ago) Aug 24 2018 compare
116 2.0.7 (1 year, 23 days ago) Dec 11 2020 compare