awesome-repositories.com
Blog
awesome-repositories.com

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

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectAboutHow we rankPressMCP server
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
spyoungtech avatar

spyoungtech/grequests

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

Grequests

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 overloaded.

The project covers capabilities for batch request management, high-volume data scraping, and concurrent API polling. It includes support for streaming large response bodies to maintain low memory usage and manages network timeouts and connection errors by injecting error states back into the response list.

Features

  • Parallel Request Executions - Sends multiple HTTP requests concurrently using Gevent to reduce total wait time.
  • Asynchronous HTTP Clients - Uses Gevent coroutines as an asynchronous HTTP client to execute concurrent network requests.
  • Asynchronous Request Execution - Executes multiple network requests concurrently using non-blocking patterns to improve throughput.
  • Concurrent Request Pools - Wraps the Requests library to manage pools of asynchronous connections for batch network operations.
  • Request Batching - Manages groups of network requests and processes results using a generator as tasks complete.
  • Concurrent Request Limits - Limits the number of simultaneous outgoing requests to manage resource consumption and prevent server overloading.
  • Completion-Based Batch Generators - Provides a streaming interface that yields HTTP responses as they complete instead of waiting for the entire batch.
  • Response Body Streaming - Handles massive HTTP response bodies through streaming to keep memory usage low.
  • Response Streaming - Processes large HTTP response bodies as continuous data streams to minimize memory usage.
  • Completion-Based Batch Generators - Yields responses as a generator as they complete, allowing processing without waiting for the entire batch.
  • High Performance Scraping - Gathers information from many web pages quickly using a managed pool of non-blocking requests.
  • API Polling - Fetches data from multiple API endpoints simultaneously with connection limits to avoid rate limits.

Star history

Star history chart for spyoungtech/grequestsStar history chart for spyoungtech/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 spyoungtech/grequests do?

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.

What are the main features of spyoungtech/grequests?

The main features of spyoungtech/grequests are: Parallel Request Executions, Asynchronous HTTP Clients, Asynchronous Request Execution, Concurrent Request Pools, Request Batching, Concurrent Request Limits, Completion-Based Batch Generators, Response Body Streaming.

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

Open-source alternatives to spyoungtech/grequests include: kennethreitz/grequests — Grequests is an asynchronous HTTP batcher and Gevent-based client library used to execute large sets of network… facebook/haxl — Haxl is a Haskell library and remote service request orchestrator designed for coordinating concurrent data fetching,… guzzle/guzzle — Guzzle is a PHP HTTP client used for sending synchronous and asynchronous requests to web services. It serves as a… aws/aws-sdk-php — The AWS SDK for PHP is a software development kit that provides HTTP client classes for every supported Amazon Web… typhoeus/typhoeus — Typhoeus is a Ruby wrapper for libcurl that functions as a session-based HTTP client. It provides an interface for… libcpr/cpr — C++ is a high-level HTTP client library and wrapper for libcurl. It provides a C++ interface for making network…

Open-source alternatives to Grequests

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

    kennethreitz/grequests

    4,575View on GitHub↗

    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

    Python
    View on GitHub↗4,575
  • facebook/haxlfacebook avatar

    facebook/Haxl

    4,381View on GitHub↗

    Haxl is a Haskell library and remote service request orchestrator designed for coordinating concurrent data fetching, request batching, and caching across multiple remote service providers. It functions as a framework for retrieving data from external databases and web services while minimizing network round trips. The project distinguishes itself through an applicative-based request batching system that groups multiple individual data requests into single calls to reduce network overhead. It employs an asynchronous parallel request scheduler to execute independent requests concurrently and u

    Haskell
    View on GitHub↗4,381
  • 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
  • aws/aws-sdk-phpaws avatar

    aws/aws-sdk-php

    6,191View on GitHub↗

    The AWS SDK for PHP is a software development kit that provides HTTP client classes for every supported Amazon Web Service, enabling PHP applications to send authenticated requests and receive structured, typed response objects. It includes a credential resolution chain that automatically locates credentials from environment variables, instance profiles, or configuration files, and supports promise-based asynchronous execution for running multiple API calls concurrently to improve throughput. The SDK distinguishes itself through a middleware pipeline architecture that allows interception and

    PHP
    View on GitHub↗6,191
  • See all 30 alternatives to Grequests→