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

Rust
37%
Other

Hook0

Devops

1,504

Open-source Webhooks-as-a-Service: deliver events to your users with auto-retry, signed payloads, and a real-time subscriber dashboard — all without building the infrastructure yourself.

View details
84
Repo Health
82
Technical
69
Dependency
Built with
Rust 37%
TypeScript 12%
Updated 1 weeks ago
Go
69%
MIT

hoop

Monitoring · Security

836

A wire-protocol gateway that enforces data masking, command blocking, approval workflows, and full session recording for engineers and AI agents accessing production infrastructure.

View details
86
Repo Health
80
Technical
64
Dependency
Built with
Go 69%
Clojure 13%
Updated 1 weeks ago
TypeScript
68%
MIT

Hoppscotch

Developer Tools

80,676

A lightweight, offline-capable API development ecosystem for testing HTTP, GraphQL, WebSocket, MQTT, and SSE endpoints across web, desktop, and CLI.

View details
91
Repo Health
83
Technical
62
Dependency
Built with
TypeScript 68%
Vue 24%
Updated 1 weeks ago
TypeScript
62%
EPL-2.0

Huly Platform

Collaboration · Project Management · Team Chat

27,978

Open-source all-in-one workspace that replaces Linear, Jira, Slack, and Notion for product and engineering teams.

View details
90
Repo Health
86
Technical
62
Dependency
Built with
TypeScript 62%
Svelte 34%
Updated 1 weeks ago
Rust
72%
Other

iii

Developer Tools · Devops

18,854

Compose, extend, and observe every backend service in real time using three primitives: Workers, Functions, and Triggers.

View details
87
Repo Health
85
Technical
65
Dependency
Built with
Rust 72%
TypeScript 16%
Updated 1 weeks ago
TypeScript
44%
MIT

Kuku

Note Taking

230

A local-first, open-source Markdown knowledge workspace for macOS — plain files, personal wiki and Second Brain workflows, AI-assisted diffs, and encrypted sync, built as an Obsidian alternative.

View details
77
Repo Health
67
Technical
67
Dependency
Built with
TypeScript 44%
Rust 41%
Updated 1 weeks ago
TypeScript
63%
Apache 2.0

Laminar

AI Development · Monitoring

3,434

Open-source observability platform purpose-built for AI agents — trace, evaluate, debug, and monitor at scale with SQL access and real-time replay.

View details
86
Repo Health
76
Technical
65
Dependency
Built with
TypeScript 63%
Rust 35%
Updated 1 weeks ago
Rust
43%
Apache 2.0

LanceDB

AI Development · Databases

11,757

Open-source, embedded vector database built on the Lance columnar format for fast multimodal search across billions of vectors, backed by Y Combinator (W23).

View details
90
Repo Health
86
Technical
72
Dependency
Built with
Rust 43%
Python 27%
HTML 21%
Updated 1 weeks ago
TypeScript
78%
LGPL 3.0

Latitude

AI Agents · Monitoring

4,733

Open-source AI agent monitoring that catches what will break next before your users do.

View details
87
Repo Health
88
Technical
67
Dependency
Built with
TypeScript 78%
Python 11%
Rust 11%
Updated 1 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