# bitinn/node-fetch

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/bitinn-node-fetch).**

8,861 stars · 1,054 forks · JavaScript · MIT

## Links

- GitHub: https://github.com/bitinn/node-fetch
- awesome-repositories: https://awesome-repositories.com/repository/bitinn-node-fetch.md

## Description

node-fetch is a lightweight HTTP client library that implements the browser-standard Fetch API for Node.js. It provides a promise-based interface for making asynchronous network requests to retrieve or send data from server-side environments.

The project specializes in memory-efficient data handling by utilizing request and response streaming. This allows for the incremental processing of large network payloads through native system streams to prevent memory exhaustion.

The library covers a broad range of networking capabilities, including the use of custom HTTP agents for DNS and SSL configuration, request cancellation via abort signals, and the handling of various content encodings and form data submissions.

## Tags

### Web Development

- [HTTP Request Clients](https://awesome-repositories.com/f/web-development/http-request-clients.md) — Implements a browser-compatible fetch standard for executing HTTP requests to retrieve or send data in Node.js. ([source](https://github.com/bitinn/node-fetch#readme))
- [Response Streaming](https://awesome-repositories.com/f/web-development/backend-development/request-response-handling/http-response-handling/response-streaming.md) — Implements incremental delivery of large HTTP response bodies to optimize memory usage via native streams. ([source](https://github.com/bitinn/node-fetch#readme))
- [Body Streaming](https://awesome-repositories.com/f/web-development/request-body-handling/body-streaming.md) — Processes request and response payloads as streams to handle large data without memory exhaustion.
- [Fetch API Implementations](https://awesome-repositories.com/f/web-development/restful-api-clients/node-js-clients/fetch-api-implementations.md) — Provides a lightweight implementation of the browser-standard Fetch API for Node.js runtimes.
- [Form Data Submission](https://awesome-repositories.com/f/web-development/form-data-support/form-data-submission.md) — Supports sending request payloads using encoded forms and multipart data for text and file uploads. ([source](https://github.com/bitinn/node-fetch#readme))

### Networking & Communication

- [API Data Consumption](https://awesome-repositories.com/f/networking-communication/api-data-consumption.md) — Connects Node.js backends to external web services to fetch and process remote data.
- [HTTP Payload Streaming](https://awesome-repositories.com/f/networking-communication/client-side-streaming/http-payload-streaming.md) — Handles massive network responses using readable and writable streams to process data incrementally.
- [HTTP Client Libraries](https://awesome-repositories.com/f/networking-communication/http-client-libraries.md) — A lightweight HTTP client library for sending requests and handling responses with streaming support.
- [Node.js HTTP Clients](https://awesome-repositories.com/f/networking-communication/node-js-http-clients.md) — Enables making network requests in Node.js using a browser-compatible fetch API.
- [Promise-Based HTTP Clients](https://awesome-repositories.com/f/networking-communication/promise-based-http-clients.md) — Provides an asynchronous interface for retrieving data from servers using the JavaScript Promise API.
- [Network Agent Configuration](https://awesome-repositories.com/f/networking-communication/network-infrastructure-routing/network-infrastructure-configuration/network-configuration/network-agent-configuration.md) — Manages DNS lookups and SSL certificates by configuring custom HTTP agents for network requests.
- [Request Cancellations](https://awesome-repositories.com/f/networking-communication/network-request-clients/request-cancellations.md) — Provides mechanisms to terminate active network requests using abort signals to reclaim system resources. ([source](https://github.com/bitinn/node-fetch#readme))
- [Node.js HTTP Agents](https://awesome-repositories.com/f/networking-communication/node-js-http-agents.md) — Uses Node.js HTTP agents to manage connection pooling and low-level socket configurations.
- [Request Abort Signals](https://awesome-repositories.com/f/networking-communication/request-abort-signals.md) — Ties request lifecycles to abort signals to terminate pending network operations and free resources.

### Data & Databases

- [Binary-to-Stream Conversions](https://awesome-repositories.com/f/data-databases/data-processing-pipelines/stream-processing-systems/stream-processing/effect-to-stream-conversion/promise-to-stream-conversions/binary-to-stream-conversions.md) — Converts raw binary data from the network layer into standard Node.js streams for asynchronous processing.

### Programming Languages & Runtimes

- [Deflate Stream Decompression](https://awesome-repositories.com/f/programming-languages-runtimes/data-compression-and-decompression/deflate-stream-decompression.md) — Intercepts raw response streams to decompress gzip, deflate, and brotli data before returning the payload.

### Part of an Awesome List

- [HTTP Clients](https://awesome-repositories.com/f/awesome-lists/devtools/http-clients.md) — Window fetch API implementation for Node.js.
