httpclient

Crates.iohttpclient
lib.rshttpclient
version0.23.21
sourcesrc
created_at2022-03-18 11:34:54.686689
updated_at2024-11-21 00:51:23.857419
descriptionHTTP client with middleware. Middleware provides composable support for record/replay, logging, exponential backoff, and more.
homepagehttps://github.com/kurtbuilds/httpclient
repositoryhttps://github.com/kurtbuilds/httpclient
max_upload_size
id552640
size127,186
Kurt Wolf (kurtbuilds)

documentation

https://docs.rs/httpclient/

README

GitHub Contributors Stars Build Status Downloads Crates.io

HttpClient

httpclient is a user-friendly http client in Rust. Where possible, it closely mimics the reqwest API. Why build a new http client?

  • httpclient::{Request, Response} objects are serde-serializable, which enables record/replay functionality. See the example below to see it in action.
  • httpclient provides an API for user-extensible middleware. Built-in middleware includes redirect, retry, logging, and record/replay.
  • httpclient provides a built-in Error type that can return the Http request, which includes the status code, headers, and response body.
  • httpclient provides convenience methods that reqwest does not support. The most important is the IntoFuture implementation, which awaits both the request and the response body, which simplifies the scenario where you want to return the request body even in error cases.

Oauth2

For Oauth2, use Oauth2Flow and the Oauth2 middleware from httpclient_oauth2.

Roadmap

  • Hide secrets in Recorder. Hash & Eq checks for requests must respect hidden values.
  • Ensure it builds on wasm32-unknown-unknown
  • Sanitize "sessid" in json
Commit count: 234

cargo fmt