An ergonomic, batteries-included HTTP client for Rust with async/blocking support, TLS, and proxies.
Reqwest is an HTTP client library for Rust that provides both asynchronous and blocking interfaces for making web requests. It simplifies tasks like sending JSON data, handling cookies, managing redirects, and working with proxies, all with secure TLS support. The library is designed to be ergonomic and feature-complete, reducing the boilerplate typically associated with HTTP communication in Rust.
Rust developers building applications that need to interact with web APIs, scrape data, or perform any HTTP-based network communication. It's suitable for both beginners looking for an easy-to-use client and experienced developers needing advanced features.
Developers choose Reqwest for its comprehensive feature set, intuitive API, and strong community support. It stands out by offering a "batteries-included" experience with sensible defaults, excellent documentation, and flexibility through optional features like native TLS and WASM compatibility.
An easy and powerful Rust HTTP Client
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides both asynchronous and blocking clients, allowing developers to choose the right pattern without switching libraries, as highlighted in the README's feature list.
Supports JSON, urlencoded, and multipart formats out-of-the-box, simplifying common tasks like sending JSON payloads shown in the example code.
Uses rustls for TLS by default, offering modern security without system dependencies, though native TLS is available as an optional feature per the README.
Includes WASM support for browser-based Rust and proxy handling, making it suitable for diverse deployment scenarios from servers to web apps.
Asynchronous usage often requires an external runtime like Tokio, which can complicate setup for projects not already using such runtimes, as implied by the example in the README.
Enabling native TLS on Linux requires OpenSSL, which may be missing or cause build issues, as noted in the requirements section with potential failure if not found.
With version 0.13, reqwest is still in pre-1.0 development, meaning future updates might introduce breaking changes that require code migration, as common in early-stage crates.