awesome-repositories.com
博客
MCP
awesome-repositories.com

通过 AI 驱动的搜索,发现最优秀的开源仓库。

探索精选搜索开源替代品自托管软件博客网站地图
项目关于排名机制媒体报道MCP 服务器
法律隐私政策服务条款
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
sindresorhus avatar

sindresorhus/got

0
View on GitHub↗
14,915 星标·986 分支·TypeScript·MIT·9 次浏览

Got

Got is a promise-based HTTP request library for Node.js that supports HTTP/2 and streaming. It provides a system for making network requests with a focus on asynchronous control flow and type-safe API client development.

The library is distinguished by its middleware-based request lifecycle, which uses interceptors and plugins to modify request options and response data. It includes a configurable automatic retry mechanism with backoff strategies, a built-in HTTP response cache, and a cookie-jar system for maintaining persistent sessions.

Broad capabilities cover data handling through duplex streaming and automated API pagination, as well as network configuration including custom DNS resolution and Unix domain socket support. Security is handled via basic authentication and client SSL certificates, while request lifecycle management includes signal-based cancellation and diagnostic channel monitoring for observability.

Features

  • Promise-Based HTTP Clients - Provides a promise-based API for sending network requests with support for HTTP/2 and streaming.
  • Node.js Network Libraries - A high-performance promise-based HTTP request library specifically optimized for the Node.js runtime environment.
  • Memory-Efficient Streaming - Processes request and response bodies as duplex streams to handle large datasets without memory exhaustion.
  • Middleware-Based Request Pipelines - Provides modular chains of pluggable components that intercept and modify network requests and responses.
  • Request Payloads - Supports transmitting request payloads via strings, buffers, streams, or generators with automatic length calculation.
  • Body Parsers - Processes response data as text, JSON, or raw buffers with support for custom encodings.
  • JSON Serialization - Provides built-in support for serializing objects to JSON for requests and parsing response bodies.
  • Network Data Streaming - Handles network data as a duplex stream to pipe request bodies or stream responses efficiently.
  • Client Instance Defaults - Supports creating pre-configured request instances with shared base URLs, headers, and authentication settings.
  • Promise-Based Flow Control - Wraps network operations in promises to handle asynchronous request-response cycles with linear control flow.
  • Client Session Persistence - Maintains client-level state, cookies, and connection settings across multiple requests.
  • Cookie Management - Automates the storage, retrieval, and transmission of session cookies across network requests via a cookie jar.
  • Retry Strategies - Implements configurable retry strategies with backoff policies for network operations.
  • Hook-Based Plugin Systems - Allows extending core functionality by registering custom logic into lifecycle events and interceptors.
  • Payload Streaming - Processes large request and response bodies as duplex streams to minimize memory consumption.
  • HTTP Request Interceptors - Implements a middleware-based system for intercepting and modifying outgoing HTTP requests.
  • Request Interception Middleware - Provides a middleware system for intercepting and modifying network requests and responses globally.
  • Request Lifecycle Hooks - Implements lifecycle hooks to execute custom functions at specific stages of the request process.
  • Type-Safe API Clients - Enables wrapping network requests in typed classes to ensure response bodies and options adhere to specific schemas.
  • API Response Caching - Includes a built-in HTTP response cache for retrieving previously fetched API responses.
  • Request Retries - Automatically resends failed requests using configurable backoff strategies based on error types.
  • Stream Retries - Resets data streams and restarts requests automatically when network errors occur during streaming.
  • Request Timeout Configurations - Provides precise timeout configurations for different request stages to prevent hanging connections.
  • Redirection Managers - Provides tools for tracking and controlling automatic HTTP location following behavior and redirect limits.
  • Request Configurations - Allows the definition of shared configurations and base settings to be reused across multiple requests.
  • Cookie Management - Provides a cookie jar system for automatically storing and sending cookies across network requests.
  • DNS Resolution - Allows for customizable DNS server, caching, and filtering configurations to control IP resolution.
  • Network Connectivity Configurations - Provides controls for DNS resolution logic and IP versioning for managing remote server connections.
  • Request Cancellations - Enables termination of active network operations using signals to release system resources.
  • Network Request Tools - Provides utilities for configuring and executing network requests with complex workflows and retries.
  • Request Header Configuration - Provides capabilities to set custom HTTP headers and copy headers from piped streams.
  • Unix Domain Socket Support - Allows communicating with local services using Unix Domain Sockets instead of traditional TCP/IP networking.
  • HTTP Request Caching - Implements an HTTP response caching system to reduce redundant network requests.
  • Automated Retry Strategies - Provides an automatic retry mechanism with configurable backoff strategies to recover from transient network errors.
  • API Pagination - Implements a mechanism for retrieving multiple pages of API results by following links or updating parameters.
  • Response Streaming - Implements incremental delivery of large HTTP response bodies to optimize memory usage.
  • REST APIs - Facilitates programmatic interaction with REST web services using standard HTTP methods and JSON payloads.
  • 开发工具 - Simplified HTTP request library.
  • HTTP Clients - Human-friendly, feature-rich HTTP request library.

Star 历史

sindresorhus/got 的 Star 历史图表sindresorhus/got 的 Star 历史图表

AI 搜索

探索更多 awesome 仓库

用简单的语言描述您的需求 —— AI 将根据相关性为您从数千个精选开源项目中进行排序。

Start searching with AI

常见问题解答

sindresorhus/got 是做什么的?

Got is a promise-based HTTP request library for Node.js that supports HTTP/2 and streaming. It provides a system for making network requests with a focus on asynchronous control flow and type-safe API client development.

sindresorhus/got 的主要功能有哪些?

sindresorhus/got 的主要功能包括:Promise-Based HTTP Clients, Node.js Network Libraries, Memory-Efficient Streaming, Middleware-Based Request Pipelines, Request Payloads, Body Parsers, JSON Serialization, Network Data Streaming。

sindresorhus/got 有哪些开源替代品?

sindresorhus/got 的开源替代品包括: axios/axios — Axios is an isomorphic, promise-based HTTP client designed for making asynchronous network requests across different… elbywan/wretch — Wretch is a chainable HTTP client library and Fetch API wrapper designed to simplify network request configuration,… encode/httpx — This project is a comprehensive Python network request framework designed for both synchronous and asynchronous HTTP… psf/requests — Requests is a high-level HTTP client library designed to simplify web communication and API integration. It provides… mzabriskie/axios — Axios is a promise-based HTTP client used to make asynchronous network requests in both browser and Node.js… square/okhttp — OkHttp is an HTTP client for the JVM and Android that enables network communication via synchronous and asynchronous…

Got 的开源替代方案

相似的开源项目,按与 Got 的功能重合度排序。
  • axios/axiosaxios 的头像

    axios/axios

    109,077在 GitHub 上查看↗

    Axios is an isomorphic, promise-based HTTP client designed for making asynchronous network requests across different JavaScript execution environments, including the browser and Node.js. It functions as a JSON API client that serializes JavaScript objects into JSON and parses server responses into structured data. The project features a system for managing reusable client instances with shared configurations, such as base URLs and default settings. It includes a mechanism for intercepting outgoing requests and incoming responses globally, allowing data to be transformed before it reaches the

    JavaScripthacktoberfesthttp-clientjavascript
    在 GitHub 上查看↗109,077
  • elbywan/wretchelbywan 的头像

    elbywan/wretch

    5,174在 GitHub 上查看↗

    Wretch is a chainable HTTP client library and Fetch API wrapper designed to simplify network request configuration, response parsing, and error handling. It functions as a network request manager and middleware framework for managing the end-to-end lifecycle of HTTP calls. The project is distinguished by a fluent interface for request configuration and a modular extension system. It utilizes a programmable response resolver to automate parsing and a plugin-based architecture to add new capabilities to request and response objects. The library covers a broad range of operational capabilities,

    TypeScript
    在 GitHub 上查看↗5,174
  • encode/httpxencode 的头像

    encode/httpx

    15,090在 GitHub 上查看↗

    This project is a comprehensive Python network request framework designed for both synchronous and asynchronous HTTP communication. It provides a high-performance client capable of executing non-blocking requests within event-driven applications, while also supporting standard blocking calls for simpler scripts. The library is built to operate natively across diverse asynchronous runtimes, automatically detecting and utilizing the underlying event loop for concurrency. What distinguishes this library is its modular architecture, which decouples request construction from network execution thro

    Pythonasynciohttppython
    在 GitHub 上查看↗15,090
  • psf/requestspsf 的头像

    psf/requests

    54,044在 GitHub 上查看↗

    Requests is a high-level HTTP client library designed to simplify web communication and API integration. It provides an intuitive, human-readable interface for performing standard network operations, including request execution, connection pooling, and stateful session management. By encapsulating raw network data into structured objects, the library automates the complexities of headers, cookies, and payload transmission. The library distinguishes itself through a modular transport adapter layer that allows for custom protocol handling and extensible authentication hooks. It supports a wide

    Pythonclientcookiesforhumans
    在 GitHub 上查看↗54,044
查看 Got 的所有 30 个替代方案→