// the find
danmactough/node-feedparser
Robust RSS, Atom, and RDF feed parsing in Node.js
A Node.js transform stream that parses RSS, Atom, and RDF feeds into normalized JavaScript objects. It handles the genuinely annoying parts of feed parsing: XML namespace weirdness, relative URL resolution, and the inconsistencies between feed formats. For anyone building a feed reader or aggregator in Node.
1. Normalizes all three formats (RSS, Atom, RDF) into a consistent object shape so you don't branch on feed type throughout your app. 2. Relative URL resolution is actually correct, including URLs embedded in HTML content fields — most parsers miss this. 3. Non-default XML namespace handling works, which matters for the weird feeds that use a custom prefix for core elements. 4. The test suite ships with real feed XML fixtures covering edge cases like illegally nested elements, SAX errors, iconv encoding, and gzipped content — the corpus is genuinely useful.
1. Still a CommonJS module in 2026 — no ESM export, which means `.mjs` projects get the `require`-in-ESM dance. 2. The TypeScript definition file (`index.d.ts`) exists but looks hand-maintained; it will drift from reality and already has in several places where article properties are typed loosely as `any`. 3. Streams API usage is a bit dated — the README still features `feedparser.on('readable', ...)` with a manual `while (stream.read())` loop as the primary example instead of async iteration, which is awkward for new Node developers. 4. No built-in HTTP fetching — you always wire up your own fetch/got/axios, which is the right call architecturally, but the README example uses the abandoned `node-fetch` v2 pattern, which will confuse people who follow it.