# http-rs/surf

Fast and friendly HTTP client framework for async Rust

Repository: https://github.com/http-rs/surf
Canonical: https://ross.abutalabs.com/products/http-rs-surf
Homepage: https://docs.rs/surf
Language: Rust
License: Apache-2.0
License Family: permissive
Last push: 2023-09-11T14:52:24+00:00

## Health v2 (maintenance only)
Score: 23/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 0, release rhythm 8, longevity 100
- inputs: {"age_days": 2614, "days_push": 1087, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1509, forks 128 (observed 2026-08-28T04:04:55.715060+00:00)

## What it is
Surf is an async HTTP client library for Rust with a friendly, ergonomic API and pluggable HTTP backends (curl, hyper, h1, wasm). It supports middleware, streaming requests/responses, JSON handling, and TLS via native-tls or rustls.

## Use cases
- make http requests in rust
- async http client for rust
- call rest apis from rust
- send and receive json over http
- stream http request and response bodies
- swap http backends behind one client api
- build an sdk with a configurable http client

## When to choose
- you want a simple, friendly async HTTP client API in Rust
- you need pluggable backends (curl, hyper, h1, wasm) behind one interface
- you want built-in middleware, streaming, and easy JSON serialization
- you're already in the async-std/http-rs ecosystem

## When to avoid
- you want the most actively maintained Rust HTTP client - reqwest is the de facto standard
- your project is on tokio and you want first-class tokio-native support
- you need the latest HTTP features or prompt bug fixes - the crate hasn't released since 2021

## Facets
- artifact type: library
- maturity: maintenance
- function: http-client, middleware, serialization
- domain: web-development, apis, backend
- platform: rust, cross-platform, wasm
- tags: async, async-std, tokio, tls, curl, hyper, json, streaming

## Member repositories
- http-rs/surf (main) score 23

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:04:55.715060+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T04:32:29.366934+00:00, confidence not recorded.
  - readme: https://github.com/http-rs/surf (fetched 2026-08-28T04:04:55.715060+00:00, sha 4996e162acd8)
  - homepage: https://docs.rs/surf (fetched 2026-08-29T11:36:44.305092+00:00, sha 91999d724ce2)
  - site_page: https://docs.rs/ (fetched 2026-08-29T11:36:44.314218+00:00, sha f931c3420070)
  - site_page: https://docs.rs/crate/surf/latest (fetched 2026-08-29T11:36:44.316125+00:00, sha 6d8bdc4836b8)
  - site_page: https://docs.rs/crate/surf/latest/features (fetched 2026-08-29T11:36:44.318304+00:00, sha 48614cb0a441)
  - site_page: https://docs.rs/about (fetched 2026-08-29T11:36:44.320212+00:00, sha 29ab7986fbf5)
  - site_page: https://docs.rs/about/badges (fetched 2026-08-29T11:36:44.321913+00:00, sha 6588cac258af)
  - site_page: https://docs.rs/about/builds (fetched 2026-08-29T11:36:44.323861+00:00, sha 811231ca4680)
  - site_page: https://docs.rs/about/metadata (fetched 2026-08-29T11:36:44.325766+00:00, sha 0dcdccb2b2b2)
  - site_page: https://docs.rs/about/redirections (fetched 2026-08-29T11:36:44.327393+00:00, sha 1b1efd93105f)
- Data as of 2026-08-30T08:39:29.467469+00:00.
