reqwest

An ergonomic, batteries-included HTTP client for Rust, with async and blocking APIs.

Library
Cargo
v0.13.5
11,885 stars
MIT OR Apache-2.0

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
81 /100 Excellent
Development Activity 72
Maintenance 76
Community 76
Maturity 60
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
86 /100 Excellent
Architecture 88
Code Quality 90
Innovation 85
Learning Curve 82

reqwest is the de facto standard HTTP client for the Rust ecosystem, built on top of hyper and Tokio. It wraps the low-level plumbing of connection pooling, TLS negotiation, and HTTP/1.1-2 (with experimental HTTP/3) framing behind a small, discoverable API surface, so most applications need only a handful of calls to send a request and deserialize a response.

Beyond the basics, reqwest ships first-class support for JSON, form and multipart bodies, cookie stores, redirect policies, proxies (including system-proxy detection), and swappable TLS backends (rustls by default, native-tls or vendored OpenSSL optionally). It also compiles to WebAssembly for browser environments and offers a synchronous blocking client for scripts and CLIs that don’t want to pull in an async runtime.

What You Get

  • An async Client built on hyper/hyper-util with automatic connection pooling and keep-alive
  • An optional blocking module exposing a synchronous API for scripts, CLIs, and non-async codebases
  • Built-in JSON, form-urlencoded, and multipart request/response helpers gated behind Cargo features
  • A pluggable TLS layer — rustls (default), native-tls, or vendored OpenSSL — selected via feature flags
  • Cookie store, configurable redirect policy, proxy support (including system-proxy autodetection), and experimental HTTP/3

Common Use Cases

  • Calling third-party REST or JSON APIs from an async Rust service (web backend, worker, CLI)
  • Building typed API clients for external services with reqwest::Client plus serde-derived request/response structs
  • Downloading or uploading files and multipart payloads with streaming bodies
  • Web scraping or crawling tools that need cookie persistence and redirect following out of the box
  • Compiling to WASM to make HTTP calls from browser-targeted Rust code

Under The Hood

Architecture — reqwest layers a request-builder API (async_impl::client::Client/RequestBuilder in src/async_impl/client.rs and src/async_impl/request.rs) over a tower::Service stack composed from hyper-util’s connection-pooling client, a TowerRedirectPolicy (src/redirect.rs), an optional CookieService (src/cookie.rs), and a Connector/BoxedConnectorService abstraction (src/connect.rs) that resolves DNS (via GaiResolver or optional hickory-dns), negotiates TLS, and dials proxies (src/proxy.rs). The blocking module (src/blocking/) wraps the same async client and drives it from a dedicated background Tokio runtime, so synchronous callers get an equivalent API without spinning their own executor. A parallel wasm module (src/wasm/) swaps the hyper transport for the browser fetch API when targeting wasm32-unknown-unknown.

Tech Stack — Rust 2021 edition, minimum supported Rust version 1.85.0. Core dependencies are hyper 1.x and hyper-util for HTTP/1.1 and HTTP/2 transport, tower/tower-service/tower-http for middleware (retry, timeout, redirect-following), tokio for async I/O, http/http-body/http-body-util for the request/response types, and url for URL parsing. TLS is feature-gated: rustls (default, via hyper-rustls and rustls-platform-verifier) or native-tls/native-tls-vendored. Optional features pull in serde/serde_json/serde_urlencoded (JSON/form/query), cookie/cookie_store (cookies), mime_guess (multipart), encoding_rs (charset), and h3/h3-quinn/quinn (experimental HTTP/3).

Code Quality — the crate carries an extensive tests/ suite (client.rs, redirect.rs, cookie.rs, multipart.rs, proxy.rs, timeouts.rs, retry.rs, gzip/brotli/deflate/zstd compression, connector_layers.rs, badssl.rs, upgrade.rs, wasm_simple.rs) exercised against a local support test-server harness, plus a ci.rs smoke test and dedicated blocking-client tests. Nearly every public type and method carries doc comments with runnable examples, feature gating is used consistently to keep optional dependencies out of default builds, and errors are unified behind a boxed Error/BoxError type (src/error.rs) rather than leaking transport-specific error types to callers.

API Design — the builder pattern (Client::get(url).header(...).query(...).json(&body).send().await?) reads close to plain English and mirrors patterns from Python’s requests, which is a deliberate design goal stated in the README. Feature flags keep the dependency footprint minimal by default while making advanced capabilities (cookies, multipart, streaming, HTTP/3) a single Cargo.toml line away. The blocking and async APIs are intentionally near-identical, which lowers the cost of switching between sync scripts and async services.

Used by 72 apps in this directory

Go
82%
AGPL 3.0

PeerDB

Data Engineering · Databases

3,309

Postgres-native ETL that streams change data capture in real time to Snowflake, BigQuery, ClickHouse, S3, and Kafka — up to 10x faster than general-purpose pipelines, managed through a familiar Postgres SQL interface.

View details
89
Repo Health
76
Technical
66
Dependency
Built with
Go 82%
TypeScript 12%
Updated 6 days ago
Rust
63%
MIT

PostgresML

AI Development · Databases

6,823

Run ML training and LLM inference natively inside PostgreSQL with GPU acceleration — no data movement required.

View details
51
Repo Health
76
Technical
64
Dependency
Built with
Rust 63%
JavaScript 11%
Updated 1 years ago
Python
55%
Other

PostHog

Ab Testing Experimentation · Analytics · Developer Tools

40,397

The all-in-one open source product platform combining analytics, session replay, feature flags, error tracking, AI observability, and a built-in data warehouse in a single self-hostable stack.

View details
92
Repo Health
80
Technical
65
Dependency
Built with
Python 55%
TypeScript 36%
Updated 6 days ago
Rust
63%
MIT

Readur

Bookmarks Archiving · File Storage · Knowledge Management

804

A self-hosted document management system that OCRs, indexes, and makes every PDF, scan, and Office file instantly searchable.

View details
83
Repo Health
78
Technical
67
Dependency
Built with
Rust 63%
TypeScript 32%
Updated 6 days ago
Rust
72%
Apache 2.0

Rivet

AI Agents · Developer Tools

6,326

Stateful actors as a primitive for AI agents, real-time collaboration, and durable execution — with in-memory state, WebSockets, queues, and scheduling built in.

View details
87
Repo Health
81
Technical
64
Dependency
Built with
Rust 72%
TypeScript 25%
Updated 6 days ago
Rust
69%
AGPL 3.0

RustDesk

Networking

126,751

Open-source, self-hosted remote desktop built in Rust — your data, your infrastructure, no third-party cloud.

View details
93
Repo Health
84
Technical
70
Dependency
Built with
Rust 69%
Dart 22%
Updated 6 days ago
Python
64%
AGPL 3.0

Shadowbroker

Analytics · Monitoring · Security

11,358

Self-hosted OSINT dashboard that fuses 60+ live intelligence feeds — flight tracking, ship AIS, satellites, CCTV, seismic and radio networks — into one real-time map, with an agent-ready command channel for AI co-analysts.

View details
85
Repo Health
83
Technical
71
Dependency
Built with
Python 64%
TypeScript 32%
Updated 1 weeks ago
TypeScript
61%
AGPL 3.0

Silex

Design Tools · No Code Platforms

3,015

Free, open-source visual website builder that exports clean HTML/CSS — no lock-in, no subscription, host anywhere

View details
89
Repo Health
68
Technical
67
Dependency
Built with
TypeScript 61%
Rust 15%
JavaScript 11%
Updated 1 weeks ago
Rust
79%
AGPL 3.0

Spacedrive

Collaboration · File Storage

39,292

One file manager for all your devices and clouds — powered by a Virtual Distributed File System built in Rust.

View details
84
Repo Health
84
Technical
63
Dependency
Built with
Rust 79%
TypeScript 18%
Updated 2 weeks ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers