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
requests avatar

requests/requests

0
View on GitHub↗
54,070 stars·9,987 forks·Python·Apache-2.0·23 viewsrequests.readthedocs.io/en/latest↗

Requests

Requests is a Python HTTP client library used for sending HTTP requests and handling responses. It serves as a network client providing fundamental components for session management, proxy routing, multi-part uploading, and SSL/TLS certificate verification.

The project distinguishes itself through a session manager that maintains cookies and reuses TCP connections to improve network performance. It also includes a dedicated multi-part form uploader for transmitting binary data and an integrated SSL/TLS certificate verifier to ensure encrypted and trusted communication.

The library covers a broad range of networking capabilities, including RESTful service communication, automated web scraping, and request authentication. It also provides traffic management tools such as connection timeout control, proxy connection routing, and incremental response streaming for handling large data volumes.

Features

  • HTTP API Integrations - Serves as a comprehensive library for sending HTTP requests to remote servers and parsing responses for API integration.
  • Connection Pooling - Reuses TCP connections across multiple requests through connection pooling to reduce network latency and overhead.
  • HTTP Client Libraries - Provides a human-readable Python library for performing synchronous HTTP requests and managing connection pools.
  • Request Data Transmission - Provides comprehensive capabilities for sending HTTP requests with various data types and body formats to remote servers.
  • Certificate Verification - Validates SSL/TLS certificates during HTTPS connections to ensure server authenticity and prevent man-in-the-middle attacks.
  • Connection Certificate Verifiers - Ensures secure network communication by validating digital certificates during HTTPS connections against trusted authorities.
  • Standard Web Authentication Schemes - Implements standard HTTP authentication schemes such as Basic and Digest for accessing protected remote resources.
  • Session State Persistence - Manages cookies and security credentials across multiple requests to maintain a persistent authenticated user state.
  • Persistent Session Managers - Maintains persistent session data and authentication tokens across multiple network requests to ensure a consistent user state.
  • Session Connection Pooling - Maintains cookies and reuses TCP connections across multiple requests to improve overall network performance.
  • RESTful Services - Facilitates communication with RESTful services using standard HTTP methods and structured JSON payloads.
  • Request Timeouts - Allows setting maximum wait durations for server responses to prevent the application from freezing during network failures.
  • Response Decoders - Automatically detects character sets and applies decoding logic to convert incoming network data into readable text.
  • Multipart File Uploads - Enables the transfer of binary files and multipart form data to remote servers for storage or processing.
  • Proxy-Compatible Clients - Implements a client-side mechanism capable of routing all outbound HTTP traffic through specified proxy servers.
  • Multipart Form Encoding - Serializes binary files and text fields into a single stream using boundary markers for server-side file uploads.
  • Multipart Form Uploaders - Provides a dedicated tool for transmitting files and binary data to remote servers via multi-part form encoding.
  • Multipart Form Uploads - Implements a dedicated multi-part form uploader for transmitting binary assets and files to remote servers.
  • Traffic Routing Proxies - Directs outgoing network traffic through intermediate proxy servers to bypass restrictions or obscure the client origin.
  • Proxy Routing - Directs outgoing network traffic through specified intermediary proxy servers to bypass network restrictions.
  • Response Streaming - Provides the ability to stream large HTTP response bodies incrementally to minimize memory consumption.
  • Content-Type Based Deserializers - Detects the Content-Type header of server responses to determine the appropriate character encoding and decompression strategy.
  • Web Scraping - Provides the fundamental tools for downloading and decoding web page content for programmatic data extraction.
  • Example Projects - Reference implementation of a robust test suite.

Star history

Star history chart for requests/requestsStar history chart for requests/requests

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

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 requests/requests do?

Requests is a Python HTTP client library used for sending HTTP requests and handling responses. It serves as a network client providing fundamental components for session management, proxy routing, multi-part uploading, and SSL/TLS certificate verification.

What are the main features of requests/requests?

The main features of requests/requests are: HTTP API Integrations, Connection Pooling, HTTP Client Libraries, Request Data Transmission, Certificate Verification, Connection Certificate Verifiers, Standard Web Authentication Schemes, Session State Persistence.

What are some open-source alternatives to requests/requests?

Open-source alternatives to requests/requests include: shazow/urllib3 — urllib3 is a Python HTTP client library used to send network requests and receive responses. It provides core… libcpr/cpr — C++ is a high-level HTTP client library and wrapper for libcurl. It provides a C++ interface for making network… urllib3/urllib3 — urllib3 is a Python HTTP client library used for sending network requests and receiving responses. It functions as an… guzzle/guzzle — Guzzle is a PHP HTTP client used for sending synchronous and asynchronous requests to web services. It serves as a… node-fetch/node-fetch — node-fetch is a promise-based HTTP client library that provides a lightweight implementation of the Fetch API for the… jnunemaker/httparty — HTTParty is a Ruby HTTP client library designed for building standardized API clients. It abstracts low-level network…

Open-source alternatives to Requests

Similar open-source projects, ranked by how many features they share with Requests.
  • shazow/urllib3shazow avatar

    shazow/urllib3

    4,026View on GitHub↗

    urllib3 is a Python HTTP client library used to send network requests and receive responses. It provides core components for managing HTTP connection pools, routing traffic through proxies, validating TLS certificates, and executing automatic request retries. The library focuses on network reliability and efficiency by maintaining a system that reuses established connections to multiple hosts to reduce latency. It ensures secure communication through client-side certificate verification and handles transient network errors using policy-based retry logic. The project covers broad networking c

    Python
    View on GitHub↗4,026
  • libcpr/cprlibcpr avatar

    libcpr/cpr

    7,367View on GitHub↗

    C++ is a high-level HTTP client library and wrapper for libcurl. It provides a C++ interface for making network requests, managing network sessions, and implementing data transfers. The library distinguishes itself by offering an asynchronous HTTP client capable of executing non-blocking requests via callback interfaces. It also functions as a multipart form uploader for transmitting files and structured data, as well as an SSE stream handler for processing real-time server-sent events over persistent connections. Its broader capabilities cover secure web communication through SSL encryption

    C++
    View on GitHub↗7,367
  • urllib3/urllib3urllib3 avatar

    urllib3/urllib3

    4,026View on GitHub↗

    urllib3 is a Python HTTP client library used for sending network requests and receiving responses. It functions as an HTTP connection pool manager and a TLS certificate validator to ensure secure communication between endpoints. The library provides a system for maintaining reusable network connections to reduce the overhead of repeated handshakes. It also serves as an HTTP proxy client capable of routing requests through proxy servers to manage origin identity or bypass firewalls. The tool covers programmatic file uploads via multipart encoding and automated network resilience through the u

    Pythonhttphttp-clientpython
    View on GitHub↗4,026
  • 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
See all 30 alternatives to Requests→