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
79%
MIT

mnemo

AI Agents · AI Development · AI Memory

237

A local-first AI memory sidecar that extracts entities, builds a persistent knowledge graph, and injects ranked context into any LLM pipeline — no cloud required.

View details
27
Repo Health
78
Technical
76
Dependency
Built with
Rust 79%
Python 16%
Updated 4 months ago
TypeScript
89%
GPL 3.0

NoteGen

AI Assistants · Knowledge Management · Note Taking

12,914

Capture anything first, then let AI transform your scattered records into polished, structured Markdown notes with RAG-powered knowledge retrieval.

View details
87
Repo Health
74
Technical
67
Dependency
Built with
TypeScript 89%
Updated 1 weeks ago
Python
64%
Other

Onyx

AI Agents · AI Assistants · Knowledge Management

32,935

Self-hostable AI platform with agentic RAG, 50+ connectors, deep research, code execution, and support for every major LLM provider.

View details
92
Repo Health
83
Technical
68
Dependency
Built with
Python 64%
TypeScript 26%
Updated 6 days ago
TypeScript
90%
MIT

open-pencil

AI Design Tools · Design Tools

9,227

An open-source design editor that reads native Figma files, ships a built-in AI assistant with 100+ design tools, and offers real-time serverless collaboration — all without giving up your files.

View details
84
Repo Health
78
Technical
69
Dependency
Built with
TypeScript 90%
Updated 1 weeks ago
Rust
97%
Apache 2.0

codex

AI Code Assistants · Developer Tools

130,715

OpenAI's open-source CLI coding agent that reads, edits, and runs code in your terminal using natural language prompts.

View details
89
Repo Health
80
Technical
75
Dependency
Built with
Rust 97%
Updated 1 weeks ago
Python
100%
Other

OpenBB

Analytics · Databases · Invoicing Finance

74,601

The AI Workspace for Finance: Connect Data, Run AI Agents, Build Analytics

View details
80
Repo Health
80
Technical
65
Dependency
Built with
Python 100%
Updated 1 weeks ago
Rust
91%
MIT

OpenPencil

AI Design Tools

6,464

An open-source, AI-native vector design tool with concurrent agent teams, design-as-code, a built-in MCP server, and multi-model intelligence — a distinct project from the similarly-named Figma-file-reading "open-pencil" editor.

View details
81
Repo Health
70
Technical
75
Dependency
Built with
Rust 91%
Updated 1 weeks ago
Python
73%
AGPL 3.0

OpenViking

AI Development · AI Memory · Databases

40,705

An open-source context database that gives AI agents a unified filesystem for memory, resources, and skills with hierarchical tiered retrieval.

View details
85
Repo Health
75
Technical
64
Dependency
Built with
Python 73%
TypeScript 12%
Rust 11%
Updated 6 days ago
TypeScript
85%
MIT

openwork

AI Assistants · Automation

24,237

OpenWork is a free, open-source desktop app for running AI agent workflows on your own files with 50+ LLMs, extensible skills, and MCP server support — the open-source alternative to Claude Cowork and Codex.

View details
87
Repo Health
89
Technical
67
Dependency
Built with
TypeScript 85%
Updated 6 days 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