awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
kennethreitz avatar

kennethreitz/grequests

0
View on GitHub↗
4,575 stars·328 forks·Python·BSD-2-Clause·6 viewspypi.python.org/pypi/grequests↗

Grequests

Grequests is an asynchronous HTTP batcher and Gevent-based client library used to execute large sets of network requests simultaneously. It functions as a concurrent request wrapper for the Requests library, enabling non-blocking operations to reduce the total time spent waiting for server responses.

The project provides a task-pool execution model to handle batch network operations, such as high-throughput web scraping and API polling. It can stream responses as they arrive via a generator, allowing for immediate data processing without waiting for the entire batch to complete.

The library covers broad capability areas including concurrent HTTP request management and the handling of request exceptions during batch execution.

Features

  • Parallel Request Executions - Sends multiple HTTP requests concurrently using a task pool to reduce total wait time compared to sequential processing.
  • Greenlet-Based Concurrency - Uses lightweight greenlets to allow multiple network operations to run concurrently within a single operating system thread.
  • Asynchronous HTTP Clients - Functions as a library for sending asynchronous HTTP requests and receiving data via non-blocking APIs.
  • Batch Network Operations - Executes large sets of HTTP requests and processes the responses as a stream or collective group.
  • HTTP Client Libraries - Implements a client library for making concurrent and asynchronous HTTP requests using the Gevent framework.
  • Coroutine-Based Asynchronous I/O - Implements asynchronous I/O using Gevent coroutines to manage high concurrency without blocking threads.
  • Concurrent Request Pools - Implements capped resource pools to throttle and manage a large volume of simultaneous asynchronous network requests.
  • Concurrent Request Pooling - Sends multiple network requests at once using Gevent and capped pools to complete large workloads faster.
  • Web Scraping - Gathers data from many web pages simultaneously by executing non-blocking requests in a task pool.
  • Response Streaming - Provides the ability to process HTTP response bodies as continuous data streams via a generator to optimize memory and latency.
  • Socket Monkeypatching - Replaces standard library blocking calls with non-blocking versions to prevent the event loop from freezing.
  • API Polling - Enables simultaneous fetching of data from multiple API endpoints to reduce total server wait time.
  • Synchronous-Style Asynchronous APIs - Wraps non-blocking network calls in a familiar sequential syntax while executing them asynchronously.
  • High-Volume Web Scrapers - Provides a high-throughput networking tool for large-scale data collection from multiple web pages without sequential waiting.
  • HTTP Clients - Asynchronous HTTP requests using gevent.

Star history

Star history chart for kennethreitz/grequestsStar history chart for kennethreitz/grequests

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does kennethreitz/grequests do?

Grequests is an asynchronous HTTP batcher and Gevent-based client library used to execute large sets of network requests simultaneously. It functions as a concurrent request wrapper for the Requests library, enabling non-blocking operations to reduce the total time spent waiting for server responses.

What are the main features of kennethreitz/grequests?

The main features of kennethreitz/grequests are: Parallel Request Executions, Greenlet-Based Concurrency, Asynchronous HTTP Clients, Batch Network Operations, HTTP Client Libraries, Coroutine-Based Asynchronous I/O, Concurrent Request Pools, Concurrent Request Pooling.

What are some open-source alternatives to kennethreitz/grequests?

Open-source alternatives to kennethreitz/grequests include: guzzle/guzzle — Guzzle is a PHP HTTP client used for sending synchronous and asynchronous requests to web services. It serves as a… spyoungtech/grequests — Grequests is an asynchronous HTTP client and wrapper for the Requests library that uses Gevent coroutines to execute… lostisland/faraday — Faraday is an HTTP client library for Ruby that sends requests and processes responses through a middleware pipeline… typhoeus/typhoeus — Typhoeus is a Ruby wrapper for libcurl that functions as a session-based HTTP client. It provides an interface for… encode/httpx — This project is a comprehensive Python network request framework designed for both synchronous and asynchronous HTTP… kittinunf/fuel — Fuel is a Kotlin HTTP client library for Android and Kotlin applications that handles both synchronous and…

Open-source alternatives to Grequests

Similar open-source projects, ranked by how many features they share with Grequests.
  • guzzle/guzzleguzzle avatar

    guzzle/guzzle

    23,453View on GitHub↗

    Guzzle is a PHP HTTP client used for sending synchronous and asynchronous requests to web services. It serves as a concurrent HTTP request manager, an HTTP stream handler, and a middleware-based HTTP pipeline. The project is a PSR-7 compliant client, utilizing standardized PHP interfaces for requests, responses, and streams. The library differentiates itself through a customizable functional handler stack that allows for the interception and modification of the request and response lifecycle. It features an adapter-based transport system that enables swapping between network implementations,

    PHP
    View on GitHub↗23,453
  • spyoungtech/grequestsspyoungtech avatar

    spyoungtech/grequests

    4,576View on GitHub↗

    Grequests is an asynchronous HTTP client and wrapper for the Requests library that uses Gevent coroutines to execute multiple network requests concurrently. It utilizes a non-blocking connection pool to manage simultaneous outgoing requests and improve throughput compared to sequential execution. The library features an asynchronous response generator that yields HTTP responses as they complete, rather than waiting for an entire batch to finish. It provides a mechanism to limit the number of active connections to manage resource consumption and prevent destination servers from being overloade

    Python
    View on GitHub↗4,576
  • lostisland/faradaylostisland avatar

    lostisland/faraday

    5,946View on GitHub↗

    Faraday is an HTTP client library for Ruby that sends requests and processes responses through a middleware pipeline with pluggable adapters. Its core identity is built around a middleware-pipeline architecture where HTTP requests and responses flow through a chain of components that can modify, log, or transform data before reaching the backend, combined with an adapter-based backend abstraction that delegates HTTP execution to interchangeable backends like Net::HTTP or Typhoeus. The library distinguishes itself through a parallel-execution engine that dispatches multiple HTTP requests concu

    Ruby
    View on GitHub↗5,946
  • typhoeus/typhoeustyphoeus avatar

    typhoeus/typhoeus

    4,130View on GitHub↗

    Typhoeus is a Ruby wrapper for libcurl that functions as a session-based HTTP client. It provides an interface for making both synchronous and asynchronous network requests. The project acts as a parallel request manager, using a managed queue to execute multiple network requests concurrently. It further distinguishes itself as a mocking tool for stubbing requests with predefined responses and as a caching layer that stores responses to avoid redundant network calls. The library covers a broad range of capabilities including session cookie management, response body streaming for large files,

    Ruby
    View on GitHub↗4,130
  • See all 30 alternatives to Grequests→