node-fetch VS bun

Compare node-fetch vs bun and see what are their differences.

bun

Incredibly fast JavaScript runtime, bundler, test runner, and package manager – all in one (by oven-sh)
Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
node-fetch bun
91 286
8,635 70,488
0.4% 2.9%
1.7 10.0
about 2 months ago 3 days ago
JavaScript Zig
MIT License -
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

node-fetch

Posts with mentions or reviews of node-fetch. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-08.
  • Building a README Crawler With Node.js
    5 projects | dev.to | 8 Apr 2024
    To execute the algorithm, we will use Node.js (for the JavaScript runtime) and node-fetch (for network requests). This means we will run the code locally from the command line. For this project, we will have an output folder to store all the README data, as well as a list (queue) of repository URLs to visit. Before diving into the code, it is important to plan the input and output of the algorithm. For this web crawler, we will start at a valid GitHub repository page, which would be one URL string. After visiting each page with a README, we will export the data into a new file. Now lets cover the process of requesting a repository page from a URL. For this, we only care about saving the README file that is displayed, and we will ignore any other links that GitHub displays (such as the navbar). We will send a URL request with node-fetch, and retrieve the result of a HTML string. If we convert the HTML string to a DOM Tree, we can search for a specific element. GitHub stores the README file under a div with the class "markdown-body". We can use a library called 'jsdom' to use Browser API methods, and return a specific node.
  • OAuth 2.0 implementation in Node.js
    3 projects | dev.to | 13 Mar 2024
    Note: In case you run into install reference error: fetch isn’t defined, ensure you install node-fetch
  • 5 Ways to Make HTTP Requests in Node.js
    3 projects | dev.to | 20 Feb 2024
    Node Fetch is a JavaScript library tailored for Node.js that simplifies making HTTP requests. It offers a straightforward and Promise-based approach for fetching resources from the internet or server, such as GET, POST, PUT, and DELETE requests. Designed for server-side applications, it's compatible with the Fetch API, allowing easy code transition between client-side and server-side environments.
  • CommonJS Is Hurting JavaScript
    7 projects | news.ycombinator.com | 30 Jun 2023
    Would anyone be interested in an article about the crusade to move JS to ESM? I've been considering writing one, here's a preview:

    Sindresorus wrote a gist "Pure ESM modules"[0] and converted all his modules to Pure ESM, breaking anyone `require`ing his code; he later locked the thread to prevent people from complaining. node-fetch released a pure ESM version a year ago that is 16x less popular than the CommonJS version[1]. The results of these changes broke a lot of code and resulted in many hours of developers figuring out how make their projects compatible with Pure ESM modules (or decide to ignore them and use old CommonJS versions)--not to mention the tons of pointless drama on GitHub issues.

    Meanwhile, TC-39 member Matteo Collima advocated a moderate approach dependent on where your module will be run [2]. So the crusade is led not by the Church, but by a handful of zealots dedicated to establishing ESM supremacy for unclear reasons (note how Sindresorus' gist lacks any justifications). It's kind of like the Python 2 to 3 move except with even less rationale and not driven by the core devs.

    0 - https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3...

    1 - https://www.npmjs.com/package/node-fetch?activeTab=versions

    2 - https://github.com/nodejs/node/issues/33954#issuecomment-924...

  • Library recommendation
    1 project | /r/node | 23 Jun 2023
    https://www.npmjs.com/package/node-fetch is pretty standard assuming you're referring to an HTTP client library
  • Next-Level Technical Blogging with Dev.to API
    2 projects | dev.to | 13 Jun 2023
    The API is CORS-enabled, meaning you’ll have to use the getArticles() functions from your backend. For making the actual request, you can use the fetch() function, available since Node.js v18. For older versions of Node.js, you can use a fetch()-compatible library like node-fetch.
  • Nuxt 3 in production shows "fetch failed" on load
    1 project | /r/Nuxt | 3 Apr 2023
    I have the same setup. On node 18 fetch would not go through. I changed 127.0.0.1 to localhost in my config/env. More info here
  • EOS bot
    1 project | /r/u_honneyhive | 26 Mar 2023
    I am making a bot that is supposed to take data from Upland's database from the account "dcrawtu15ye". I am using autocode to take it and I have found some ways to use it but some of my code still comes back as null. I have been using the eos docs to find info and all it can do right now is get account info if I use console.log(await rpc.get_account('dcrawtu1u5ye'));. I am using the dependency node-fetch. I wanted to know if there is something wrong with the code below. I also used greymass from this list and this article supposedly might help too.
  • How to Parse RSS Feed in Javascript
    2 projects | dev.to | 20 Mar 2023
    The RSS feed's URL will then need to be requested over the network. The native fetch API of JavaScript will be used since it is the most efficient. It undoubtedly works in browsers, and it appears that Node has a pretty well-liked implementation of it.
  • Exploring the Most Commonly Used Folder Names in Popular NPM Packages
    12 projects | dev.to | 23 Feb 2023
    docs: Documentation is an essential part of any package, as it provides users with the information they need to understand how to use it and how it works. The documentation usually includes usage instructions, API documentation, and more. It can also be included directly in the repository's README.md file, but it's often split into multiple files and stored in this folder for ease of navigation and maintenance. Although the documentation files can be in any format, the most common one is Markdown. Example from node-fetch.

bun

Posts with mentions or reviews of bun. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-16.
  • React Server Components Example with Next.js
    9 projects | dev.to | 16 Apr 2024
    At Node Conference 2023, Jarred Sumner (creator of Bun) showed a demo of server components in Bun, so there is at least partial support in that ecosystem. The Bun repo provides bun-plugin-server-components as the official plugin for server components. And while I haven’t looked at it in-depth, Marz claims to be a “React Server Components Framework for Bun”.
  • Bun – A fast all-in-one JavaScript runtime
    1 project | news.ycombinator.com | 6 Apr 2024
  • From Node to Bun: A New Dawn for JavaScript Engines?
    1 project | dev.to | 3 Apr 2024
    Continuously evolving, Bun is currently optimized for MacOS and Linux, with ongoing efforts towards Windows compatibility. Tailored for resource-constrained environments like serverless functions, it emerges as an ideal solution. The Bun team is committed to achieving comprehensive Node.js compatibility and seamless integration with prevalent frameworks. For those intrigued by Bun's potential and want to give it a try, more information is available on its website at https://bun.sh/.
  • Bun - The One Tool for All Your JavaScript/Typescript Project's Needs?
    4 projects | dev.to | 2 Apr 2024
    Let’s say you are interested in learning more about Bun and probably give it a try. Bun has a website, where you can learn more about Bun and its features (including all the benchmark data captured in this issue), and here is the link.
  • Bun 1.1
    17 projects | news.ycombinator.com | 1 Apr 2024
    Looks like it, it seems the 2% are mostly odd platform specific issues that the authors' did not deem very important (my assumption for the release happening anyway). AFAIK this[1] PR tries to fix them.

    [1]: https://github.com/oven-sh/bun/pull/9729

  • Bun-ify Your Project
    1 project | dev.to | 6 Mar 2024
    Bun has a solution for it. First of all, it already has a list of trusted dependencies. For them, Bun will execute all necessary scripts by default. Otherwise, you can add it to trustedDependecies in your package.json file. In Bun community usage of trustedDependencies is a hot topic. There are several suggestions on how to improve it.
  • I have created a small anti-depression script
    4 projects | dev.to | 5 Mar 2024
    Install Node.js (or Bun, or Deno, or whatever JS runtime you prefer) if it's not there
  • JSR: The JavaScript Registry
    9 projects | news.ycombinator.com | 1 Mar 2024
    I think maybe I was unclear. I'm talking about writing libraries that abstract across these differences and provide a single API, as sibling describes. I already know it's possible. I made a simple filesystem abstraction here[0] and a very simple HTTP library that uses it here[1]. They both work in Node/Deno and the browser. Unfortunately I ran into issues with Bun's slice implementation[2]. But I suspect there's a much better way of detecting and using the different backends.

    [0]: https://github.com/waygate-io/fs-js

    [1]: https://github.com/waygate-io/http-js

    [2]: https://github.com/oven-sh/bun/issues/7057

  • SelectorHound: The tool for Sniffing out CSS Selectors
    2 projects | dev.to | 29 Feb 2024
    For, for more speed (requires installing bun first):
  • OpenCommit: feature-rich CLI to generate meaningful git commit messages now supports local models via Ollama 🤯🔫
    2 projects | dev.to | 28 Feb 2024
    OpenCommit is a CLI to generate commit messages, you can try it right now by running npx opencommit in any repo you have changed code in. I suggest you use bunx opencommit (install Bun) or install OpenCommit globally npm i -g opencommit and then run oco which is a shorthand.

What are some alternatives?

When comparing node-fetch and bun you can also consider the following projects:

axios - Promise based HTTP client for the browser and node.js

vite - Next generation frontend tooling. It's fast!

request - 🏊🏾 Simplified HTTP request client.

GORM - The fantastic ORM library for Golang, aims to be developer friendly

got - 🌐 Human-friendly and powerful HTTP request library for Node.js

nvm - Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions

cross-fetch - Universal WHATWG Fetch API for Node, Browsers and React Native.

fastify - Fast and low overhead web framework, for Node.js

undici - An HTTP/1.1 client, written from scratch for Node.js

go-pg - Golang ORM with focus on PostgreSQL features and performance

superagent - Ajax for Node.js and browsers (JS HTTP client). Maintained for @forwardemail, @ladjs, @spamscanner, @breejs, @cabinjs, and @lassjs.

deno - A modern runtime for JavaScript and TypeScript.