DEV Community

Cover image for The fastest HTTP client for node.js by node.js
Tobias Nickel
Tobias Nickel

Posted on • Edited on • Originally published at tnickel.de

12 5

The fastest HTTP client for node.js by node.js

The node.js team has an alternative HTTP client, it can run HTTP requests about 2-3 times faster than the built-in HTTP module. With node.js version 15, the advantage is up to 4 times. This is important because almost every other HTTP client such as node-fetch, request, or axios use the original build-in HTTP client of node.js under the hood. And after the request lib is marked deprecated, here might be a good alternative.

The new HTTP client is called undici and can be found on npm and on GitHub under the node.js organization.

What is the difference?

  1. It requires to create a client object for every destination server you want to access. Still, the API is clean and you will be quickly able to adopt it. In the constructor, you have some options for concurrency.
  2. The client uses the build-in net module instead of the http module.
  3. As the HTTP lib, it uses keepAlive to use multiple queries over the same TCP connection, but it does not wait for responses to send out more requests. In the documentation they name it pipelining.

Afterthoughts

Do you think fastify also became faster than the native http module by using the net module? I have to read that code.

Earlier this year I build an experimental web server using the net module. you can read my article.

What are your thoughts on undici? Please leave a nice comment.

AWS GenAI LIVE image

Real challenges. Real solutions. Real talk.

From technical discussions to philosophical debates, AWS and AWS Partners examine the impact and evolution of gen AI.

Learn more

Top comments (1)

Collapse
 
dcsan profile image
dc • Edited

could this be used to make http long polling more efficient? still the most reliable way to do websockets through firewalls, for chatty apps... it supports streaming so...

client.stream(opts, factory(data)[, callback(err)]): Promise|Void

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay