# seanmonstar/reqwest

**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/seanmonstar-reqwest).**

11,675 stars · 1,373 forks · Rust · Apache-2.0

## Links

- GitHub: https://github.com/seanmonstar/reqwest
- Homepage: https://docs.rs/reqwest
- awesome-repositories: https://awesome-repositories.com/repository/seanmonstar-reqwest.md

## Topics

`http` `http-client` `rust`

## Description

This library is a high-level networking tool for the Rust programming language, designed to execute HTTP requests and interact with remote services and REST APIs. It provides both asynchronous and blocking interfaces, allowing developers to send data using formats such as JSON or multipart forms while maintaining type-safe communication with external web services.

The library distinguishes itself through a comprehensive architecture that manages network sessions and data flow. It utilizes connection pooling to maintain persistent sockets, which reduces latency during consecutive requests to the same host. Furthermore, it incorporates a middleware-based pipeline to handle authentication, cookie management, and redirect policies, alongside automatic response decompression to optimize bandwidth usage.

The project covers a broad range of networking requirements, including secure data transmission through transport layer security and certificate verification. It also supports complex traffic management by routing requests through system or custom proxy servers. The library is distributed as a crate, with documentation and installation instructions available through standard Rust package management channels.

## Tags

### Networking & Communication

- [HTTP Client Libraries](https://awesome-repositories.com/f/networking-communication/http-client-libraries.md) — Provides an asynchronous and blocking library for executing HTTP requests with connection pooling and TLS support.
- [HTTP Clients](https://awesome-repositories.com/f/networking-communication/http-clients.md) — Facilitates communication with external web services through standard HTTP protocols.
- [HTTP Request Builders](https://awesome-repositories.com/f/networking-communication/http-request-builders.md) — Provides a high-level interface for constructing and dispatching HTTP requests to external services. ([source](https://docs.rs/reqwest))
- [Remote Service Clients](https://awesome-repositories.com/f/networking-communication/remote-service-clients.md) — Offers a high-level, type-safe networking tool for interacting with remote APIs.
- [Connection Pooling](https://awesome-repositories.com/f/networking-communication/connection-pooling.md) — Maintains a cache of persistent network sockets to minimize latency during consecutive requests.
- [Middleware-Based Request Pipelines](https://awesome-repositories.com/f/networking-communication/communication-protocols-architectures/request-processing-architectures/request-processing/middleware-based-request-pipelines.md) — Processes requests and responses through a configurable middleware pipeline for authentication and redirects.
- [Traffic Proxying](https://awesome-repositories.com/f/networking-communication/traffic-proxying.md) — Supports routing network traffic through system or custom proxy servers to manage connectivity paths. ([source](https://docs.rs/reqwest/latest/reqwest/))
- [Response Streaming](https://awesome-repositories.com/f/networking-communication/api-integration-frameworks/http-client-libraries/http-client-utilities/response-streaming.md) — Automatically decompresses HTTP response bodies using streaming decoders to optimize memory and bandwidth.
- [Connection Management Libraries](https://awesome-repositories.com/f/networking-communication/connection-management-libraries.md) — Manages the lifecycle and state of network connections to ensure consistent data exchange. ([source](https://docs.rs/reqwest))
- [Data Compression](https://awesome-repositories.com/f/networking-communication/data-compression.md) — Extracts compressed content using standard algorithms to reduce bandwidth usage. ([source](https://docs.rs/reqwest/0.13.4/reqwest/))
- [Network Proxies](https://awesome-repositories.com/f/networking-communication/network-infrastructure-routing/network-proxying-tools/network-proxies.md) — Routes outgoing application traffic through proxy servers to manage connectivity paths.
- [Session Management](https://awesome-repositories.com/f/networking-communication/session-management.md) — Maintains persistent user sessions and cookies across multiple network requests.
- [Redirection Managers](https://awesome-repositories.com/f/networking-communication/api-integration-frameworks/http-client-libraries/http-client-utilities/redirection-managers.md) — Provides configurable mechanisms for tracking and controlling automatic HTTP redirect following behavior. ([source](https://docs.rs/reqwest/latest/reqwest/))
- [Data Transfer Tools](https://awesome-repositories.com/f/networking-communication/network-infrastructure-routing/network-infrastructure-configuration/network-management/data-transfer-remote-access/data-transfer-tools.md) — Accelerates data exchange by utilizing modern network protocols and efficient transfer techniques. ([source](https://docs.rs/reqwest))
- [Transfer Optimizations](https://awesome-repositories.com/f/networking-communication/network-transfer-management/transfer-optimizations.md) — Optimizes network performance by combining response decompression and connection reuse.

### Web Development

- [Connectors](https://awesome-repositories.com/f/web-development/rest-apis/connectors.md) — Provides a robust interface for sending data to external services while managing session state.

### Security & Cryptography

- [Secure Network Communication](https://awesome-repositories.com/f/security-cryptography/secure-network-communication.md) — Establishes encrypted connections to remote servers to protect sensitive data during transit.
- [Transport Layer Security](https://awesome-repositories.com/f/security-cryptography/transport-layer-security.md) — Secures network communication channels using transport layer security protocols with certificate verification. ([source](https://docs.rs/reqwest/latest/reqwest/))
- [Network Security Configuration](https://awesome-repositories.com/f/security-cryptography/network-security-configuration.md) — Manages secure communication protocols and certificate validation for private network transmissions. ([source](https://docs.rs/reqwest))
- [Cookie Management](https://awesome-repositories.com/f/security-cryptography/cookie-management.md) — Automatically manages and persists session cookies across multiple HTTP requests to maintain stateful connections. ([source](https://docs.rs/reqwest/latest/reqwest/))

### Programming Languages & Runtimes

- [Asynchronous Request Execution](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/concurrency-models/asynchronous-processing/asynchronous-request-execution.md) — Executes non-blocking network requests using asynchronous patterns to handle high concurrency.
