github.com/mmcdole/gofeed
v1.4.2
#460 most downloaded on Go modules
mmcdole/gofeed
What this package is like to depend on
Last release 3 days ago
20 Aug 2026
Ships unpredictably
gaps range from 9 days to 1.1 years
Most releases are documented
notes for 9 of 11 stable releases
Nothing withdrawn
no release was ever pulled
10 years old
86 releases · first in 2016
10 releases in the last 12 months
see the full history below
Release timeline
86 releases · Apr 2016 to Aug 2026Releases
latest 60 of 86-
v1.4.3-0.20260820160103-0d789596150c20 Aug 2026 pre-releaseNothing published for this version
-
v1.4.220 Aug 2026Release notes
Open source →This patch fixes two parser regressions. JSON feeds larger than the 4096-byte detection window are now detected and parsed completely, and RSS feeds with an unknown default namespace on
<rss>are parsed as native RSS while recognized extension namespaces retain their meaning.Changes
- Detect JSON feeds larger than the sniffing window. (#348)
- Tolerate an unknown default namespace on the RSS root. (#347)
- Update
actions/setup-gofrom v6 to v7. (#337)
Full changelog: v1.4.1...v1.4.2
-
v1.4.2-0.20260810233137-41f33bc35f2210 Aug 2026 pre-releaseNothing published for this version
-
v1.4.110 Aug 2026Release notes
Open source →This patch fixes namespace handling for Atom links embedded in RSS feeds. Atom self and WebSub hub links are now preserved in
Feed.Extensions["atom"]["link"]even when a feed uses a local default namespace or a different prefix.It also makes prefixed Atom and RDF documents parse consistently, preserves compatibility with commonly seen
content:encodednamespace variants, and updatesgolang.org/x/netto v0.57.0.Changes
Full changelog: v1.4.0...v1.4.1
-
v1.4.1-0.20260713141224-e010ca02e0eb13 Jul 2026 pre-releaseNothing published for this version
-
v1.4.011 Jul 2026Release notes
Open source →This release focuses on bug fixes for malformed and off-spec feeds. Illegal XML control characters, unusual date formats, incorrectly typed JSON Feed fields, and unescaped ampersands in URLs could previously break a parse or silently drop content. The parser now handles these cases without failing the feed or losing the affected content.
It also fixes a lazy-initialization data race when a default-configured
Parseris reused across goroutines (#278). Three new options give callers more control over resource use: an HTTP response-size limit, optional retention of the original source feed, and a switch to disable RSS content-image scanning.For RSS and Atom, the universal
Parser.Parsemethod no longer holds two complete copies of the raw feed in memory during format detection. It examines the first 4 KiB, detects the format, and then parses directly from the reader. The returnedFeedis still fully materialized, so this is not a streaming API. JSON Feed decoding still buffers the complete document.Compatibility
- Go 1.25 or newer is required. v1.4.0 updates
golang.org/x/netfrom v0.4.0 to v0.56.0 to resolve 22 reachable vulnerabilities reported bygovulncheck; that release and itsgolang.org/x/textdependency require Go 1.25. ParseURLnow applies a 30-second request timeout.ParseURLWithContextcontinues to use the caller's context.Parsenow examines only the first 4 KiB to detect the feed type. RSS and Atom roots must begin within that window. In v1.4.0, a JSON Feed whose complete document does not fit within the window is not detected by the universalParserand returnsErrFeedTypeNotDetected.- The text returned by
ErrFeedTypeNotDetected.Error()now begins with lowercasefailed. - No exported v1 identifier was removed.
Feednow has private storage for the original source feed, so external positionalFeed{...}literals no longer compile; keyed literals are unaffected.
Added
- Add
Parser.MaxByteSizeandErrResponseTooLargeto limit response bodies fetched byParseURLandParseURLWithContext. (#286) - Add
Parser.KeepOriginalFeedandFeed.OriginalFeed()for access to the parsed*rss.Feed,*atom.Feed, or*json.Feed. (#289) - Add
DefaultRSSTranslator.DisableContentImageScanto skip the HTML image fallback on large feeds while preserving existing behavior by default. (#330)
Parsing and translation fixes
- Fix a data race when the same default-configured
Parseris reused across goroutines. (#278) - Limit universal-parser format detection to a 4 KiB lookahead, parse RSS and Atom directly from the reader without retaining two complete raw copies, and propagate reader I/O errors. (#327)
- Preserve parse errors when closing an HTTP response also returns an error.
- Tolerate non-HTTP URI schemes and resolve RSS and Atom
xml:basevalues without mutating sibling scope. (#240, #283, #290) - Resolve every URI-bearing HTML attribute, including elements with multiple URI attributes. (#323)
- Preserve ordinary Atom content that merely looks like base64 and trim whitespace-prefixed Atom links. (#238, #283)
- Promote embedded Atom author, date, content, summary, and category elements from RSS into universal fields. (#292)
- Correct RSS
guidisPermaLinkhandling and replace the invaliditunes:subtitlefeed-link fallback withatom:link. (#283, #322) - Handle illegal C0 XML controls, mixed CDATA content, namespace whitespace,
<cloud>children, and non-content<encoded>elements without losing the feed. (#284, #295, #317, #318, #325) - Continue entity decoding after bare ampersands without corrupting query parameters that resemble legacy HTML entities. (#319, #321)
- Correct named timezone offsets and additional date layouts. (#234, #282, #324)
- Tolerate off-spec JSON Feed IDs, booleans, attachment sizes, and durations; use attachment byte size for
Enclosure.Length; and reject out-of-range numeric sizes safely. (#279, #326) - Prevent sorting panics when items have nil parsed publication dates.
Dependencies and maintenance
- Replace
jsoniterwithencoding/json. (#280) - Migrate to
github.com/mmcdole/goxpp/v2v2.0.0. (#329) - Replace
goqueryandcascadiawith directx/net/htmltraversal. (#330) - Upgrade
golang.org/x/netandgolang.org/x/textfor security, and upgradetestifyandurfave/cli. - Expand regression fixtures and consolidate parser and translator control flow. (#332, #333)
- Add contributor guidance and test-fixture conventions. (#331)
- Modernize GitHub Actions with stable/oldstable builds, race-enabled shuffled tests, Staticcheck, govulncheck, Codecov, and Dependabot; remove the defunct Travis configuration. (#297, #335)
Contributors
Contributions in this release came from @mmcdole, @TypicalAM, @oprudkyi, and @akfaew.
Full changelog: v1.3.0...v1.4.0
- Go 1.25 or newer is required. v1.4.0 updates
-
v1.3.1-0.20260706175210-16bfe363a6b306 Jul 2026 pre-releaseNothing published for this version
-
v1.3.1-0.20260706070823-0b052e9a937b06 Jul 2026 pre-releaseNothing published for this version
-
v1.3.1-0.20260706060305-dbf5a632a32d06 Jul 2026 pre-releaseNothing published for this version
-
v1.3.1-0.20260706051212-7afaf81b961c06 Jul 2026 pre-releaseNothing published for this version
-
v1.3.1-0.20250526060306-aa3774a4295e26 May 2025 pre-releaseNothing published for this version
-
v1.3.1-0.20250525172809-933ae9ccafe525 May 2025 pre-releaseNothing published for this version
-
v1.3.1-0.20250103001757-1a928bdf4a4703 Jan 2025 pre-releaseNothing published for this version
-
v1.3.001 Mar 2024Release notes
Open source →What's Changed
- Added oddball date format by @rodmcelrath in #204
- chore: slice append replace loop by @testwill in #213
- chore: remove refs to deprecated io/ioutil by @testwill in #212
- Use itunes:summary if no description tag in feed and items description by @rdelaage in #209
- Remove spaces from go identifiers in readme by @infogulch in #215
- Update translator.go by @Strubbl in #216
- Fix RSS enclosure parsing by @sgodart in #218
- Added fallback to atom icon when atom logo is missing by @spacecowboy in #221
- Extract feed and item images from more places by @infogulch in #220
- Fix handling of RSS content:encoded by @cristoper in #223
- Atom: use correct xml:base for decoded elements by @cristoper in #222
New Contributors
- @testwill made their first contribution in #213
- @rdelaage made their first contribution in #209
- @infogulch made their first contribution in #215
- @Strubbl made their first contribution in #216
- @sgodart made their first contribution in #218
- @spacecowboy made their first contribution in #221
Full Changelog: v1.2.1...v1.3.0
-
v1.2.2-0.20240301032856-9455e2b8fe2601 Mar 2024 pre-releaseNothing published for this version
-
v1.2.2-0.20240223183105-454d6a3b65eb23 Feb 2024 pre-releaseNothing published for this version
-
v1.2.2-0.20240207140508-38e4aa41306207 Feb 2024 pre-releaseNothing published for this version
-
v1.2.2-0.20231222214230-e8b4fbbb2cf422 Dec 2023 pre-releaseNothing published for this version
-
v1.2.2-0.20231006132357-854312822b6106 Oct 2023 pre-releaseNothing published for this version
-
v1.2.2-0.20230917190119-4a75004200da17 Sep 2023 pre-releaseNothing published for this version
-
v1.2.2-0.20230902152719-c1b8aed3572602 Sep 2023 pre-releaseNothing published for this version
-
v1.2.2-0.20230720040137-5ec358ead51b20 Jul 2023 pre-releaseNothing published for this version
-
v1.2.2-0.20230324231925-9ac1e33bcc7a24 Mar 2023 pre-releaseNothing published for this version
-
v1.2.128 Feb 2023 -
v1.2.029 Jan 2023 -
v1.1.4-0.20230228201216-901f297afba128 Feb 2023 pre-releaseNothing published for this version
-
v1.1.4-0.20230204002904-20c6436facdc04 Feb 2023 pre-releaseNothing published for this version
-
v1.1.4-0.20230129070320-29a58021c9f429 Jan 2023 pre-releaseNothing published for this version
-
v1.1.4-0.20230128174236-26a6aecf6df928 Jan 2023 pre-releaseNothing published for this version
-
v1.1.4-0.20220530151727-7c163b185c3930 May 2022 pre-releaseNothing published for this version
-
v1.1.4-0.20220530141819-2d63bb4b874b30 May 2022 pre-releaseNothing published for this version
-
v1.1.4-0.20211013195857-68ee9054d97b13 Oct 2021 pre-releaseNothing published for this version
-
v1.1.320 Apr 2021Release notes
Open source → -
v1.1.219 Apr 2021Release notes
Open source →Support multiple links (#164)
* Add Feed.Links
* Update tests, don't create empty list
* Use same rel logic for RSS atom extensions
* Support for JSON feed
* Fix invalid JSON and run `go mod tidy`
* Fix tests, don't return empty strings
-
v1.1.108 Apr 2021Nothing published for this version
-
v1.1.1-0.20210305010708-1850ec19c3f105 Mar 2021 pre-releaseNothing published for this version
-
v1.1.1-0.20210224022651-70d9d43ec2ea24 Feb 2021 pre-releaseNothing published for this version
-
v1.1.1-0.20201005053009-96998c2d6be505 Oct 2020 pre-releaseNothing published for this version
-
v1.1.1-0.20200917135307-d1e28ead857817 Sep 2020 pre-releaseNothing published for this version
-
v1.1.006 Sep 2020Release notes
Open source →We have JSON Feeds!
Huge thanks to @sudhanshuraheja and @nkanaev for getting JSON feed support across the finish line!
-
v1.0.1-0.20200726131730-193d002a07e626 Jul 2020 pre-releaseNothing published for this version
-
v1.0.1-0.20200529143706-22a67f9156f229 May 2020 pre-releaseNothing published for this version
-
v1.0.031 Mar 2020Nothing published for this version
-
v1.0.0-beta2.0.20200331235650-4298e4366be331 Mar 2020 pre-releaseNothing published for this version
-
v1.0.0-beta2.0.20200329195756-2251b442142129 Mar 2020 pre-releaseNothing published for this version
-
v1.0.0-beta2.0.20200307020205-1ed4d84b36ec07 Mar 2020 pre-releaseNothing published for this version
-
v1.0.0-beta2.0.20200211015426-1c1bb315fdac11 Feb 2020 pre-releaseNothing published for this version
-
v1.0.0-beta2.0.20191110175127-b4a66758a40410 Nov 2019 pre-releaseNothing published for this version
-
v1.0.0-beta2.0.20191110165642-b11c1e394b9f10 Nov 2019 pre-releaseNothing published for this version
-
v1.0.0-beta2.0.20190420154928-0e68beaf6fdf20 Apr 2019 pre-releaseNothing published for this version
-
v1.0.0-beta2.0.20190214070559-bef0272b721d14 Feb 2019 pre-releaseNothing published for this version
-
v1.0.0-beta2.0.20190202050737-d62d841d742702 Feb 2019 pre-releaseNothing published for this version
-
v1.0.0-beta2.0.20190103235747-cfd2ad2a817f03 Jan 2019 pre-releaseNothing published for this version
-
v1.0.0-beta2.0.20181010182736-eb870fd61fb810 Oct 2018 pre-releaseNothing published for this version
-
v1.0.0-beta2.0.20180914003937-c9d2a409d50614 Sep 2018 pre-releaseNothing published for this version
-
v1.0.0-beta2.0.20180502150452-3ad502aa86db02 May 2018 pre-releaseNothing published for this version
-
v1.0.0-beta2.0.20180220200145-0a05f076cc7a20 Feb 2018 pre-releaseNothing published for this version
-
v1.0.0-beta2.0.20180205193715-0585f0dd209505 Feb 2018 pre-releaseNothing published for this version
-
v1.0.0-beta203 Jan 2018 pre-releaseNothing published for this version
-
v1.0.0-beta.0.20180103222911-42010a154d2403 Jan 2018 pre-releaseNothing published for this version