23 stable releases

new 2.4.2 Jun 11, 2021
2.4.0 May 27, 2021
2.3.1 Feb 10, 2021
2.2.1 Aug 22, 2020
0.1.2 Mar 18, 2018

#15 in HTTP client

Download history 578/week @ 2021-02-24 745/week @ 2021-03-03 903/week @ 2021-03-10 1049/week @ 2021-03-17 1906/week @ 2021-03-24 1173/week @ 2021-03-31 999/week @ 2021-04-07 1127/week @ 2021-04-14 704/week @ 2021-04-21 966/week @ 2021-04-28 909/week @ 2021-05-05 1085/week @ 2021-05-12 991/week @ 2021-05-19 1233/week @ 2021-05-26 2240/week @ 2021-06-02 697/week @ 2021-06-09

5,063 downloads per month
Used in 25 crates (22 directly)

ISC license

1.5K SLoC


Crates.io Documentation CI

Simple, minimal-dependency HTTP client. Optional features for json responses (json-using-serde), unicode domains (punycode), http proxies (proxy), and https with various TLS implementations (https-rustls, https-rustls-probe, https-bundled, https-bundled-probe,https-native, and https which is an alias for https-rustls).

Without any optional features, my casual testing indicates about 100 KB additional executable size for stripped release builds using this crate. Compiled with rustc 1.45.2, println!("Hello, World!"); is 239 KB on my machine, where the hello example is 347 KB. Both are pure Rust, so aside from libc, everything is statically linked.

Note: some of the dependencies of this crate (especially serde and the various https libraries) are a lot more complicated than this library, and their impact on executable size reflects that.


Planned for 3.0.0

This is a list of features I'll implement once it gets long enough, or a severe enough issue is found that there's good reason to make a major version bump.

  • Change the response/request structs to allow multiple headers with the same name.
  • Set sane defaults for maximum header size and status line length. The ability to add maximums was added in response to #55, but defaults for the limits is a breaking change.


This crate is distributed under the terms of the ISC license.


~68K SLoC