node-fetch vs wretch
node-fetch is downloaded 525.1× more often than wretch (596,360,386 vs 1,135,645 per month), so it has the larger community and more answered questions online. Both projects are actively maintained.
| Metric | node-fetch | wretch |
|---|---|---|
| Weekly downloads | 141,594,834✓ | 280,182 |
| Monthly downloads | 596,360,386✓ | 1,135,645 |
| GitHub stars | 8,857✓ | 5,172 |
| Minified size | — | 4.2 kB |
| Minified + gzipped | — | 1.8 kB |
| Dependencies | — | 0 |
| Open issues | 247 | 9✓ |
| Last commit | 2026-05-12 | 2026-05-23✓ |
| Latest version | 3.3.2 | 3.0.8 |
| License | MIT | MIT |
When to choose which
node-fetch
A fetch() polyfill for older Node.js.
Choose it when: Legacy Node before v18. On Node 18+ fetch is global, so you usually no longer need this.
- + Familiar fetch API
- + Lightweight
- - Redundant on Node 18+
- - Manual JSON parsing
- - No interceptors
wretch
A fluent, immutable wrapper around fetch.
Choose it when: You want a small, composable fetch API with a fluent chain and middleware, in modern environments.
- + Tiny
- + Fluent immutable API
- + Middleware
- - Requires fetch
- - Smaller community
Feature comparison
| Feature | node-fetch | wretch |
|---|---|---|
| Runtime | Node only | Browser + Node 18+ |
| Built on | fetch polyfill | fetch |
| Interceptors / hooks | ✗ No | ✓ Yes |
| Automatic JSON | ✗ No | ✓ Yes |
| Built-in retries | ✗ No | Addon |
Related comparisons
Embed this comparison
A live badge for your README — it updates as the numbers change.
[](https://devcompare.dev/compare/node-fetch-vs-wretch)Data from npm, Bundlephobia and GitHub. Last updated 2026-06-02.