#http #http-client


Beautiful and elegant HTTP library

43 releases (6 stable)

✓ Uses Rust 2018 edition

1.0.5 May 15, 2020
1.0.4 Mar 21, 2020
1.0.3 Dec 31, 2019
1.0.0-alpha.8 Sep 22, 2019
0.3.1 Nov 23, 2018

#11 in HTTP client

Download history 84/week @ 2020-01-25 121/week @ 2020-02-01 101/week @ 2020-02-08 142/week @ 2020-02-15 282/week @ 2020-02-22 26/week @ 2020-02-29 107/week @ 2020-03-07 53/week @ 2020-03-14 387/week @ 2020-03-21 741/week @ 2020-03-28 922/week @ 2020-04-04 368/week @ 2020-04-11 20/week @ 2020-04-18 104/week @ 2020-04-25 100/week @ 2020-05-02 55/week @ 2020-05-09

1,102 downloads per month
Used in 3 crates (2 directly)

Apache-2.0 and maybe MPL-2.0

2.5K SLoC


Build Crates.io Documentation dependency status

Yukikaze image

Beautiful and elegant Yukikaze is little HTTP client library based on hyper.


  • Uses rustls for TLS
  • Support of various types of bodies: Plain text, JSON, multipart and forms
  • Simple redirect policy with option to limit number of redirections.
  • Support for text encodings aside from UTF-8.
  • Various helpers to extract useful headers: Cookies, ETag/Last-Modified, Content related headers.
  • File redirection support for response's body.
  • Notify interface to indicate progress of body's download.

Available cargo features

  • rustls - Enables use of rustls for default SSL implementation. By default on
  • compu - Enables compression support. By default on.
  • encoding - Enables encoding crate support. Default off.
  • websocket - Enables Websocket Upgrade mechanism. Default off. Enables carry_extensions when on.
  • carry_extensions - Carries http::Extensions from request to resolved Response. Default off.


  • fie - CLI shit posting tool for various social medias.


Q: Why not just use reqwest/actix-web/mio_httpc?

A: Reqwest API sucks, actix-web client comes with lots of server code and mio_httpc is unknown beast to me(I just found out about it when created Yukikaze).

Q: I see some moon runes and anime picture. Are you one of these disgusting weebs?

A: Obviously yes ;)

Q: Why so many inlines? Are you this stupid to use pre-mature optimizations!?

A: Yes, I'm stupid enough because compiler doesn't want inline methods across crates by default(unless you turn on LTO)

Q: Why builder methods panic? Why don't you store error in builder and return it when finishing creating request?

A: I believe in normal cases you are not supposed to create invalid requests so I consider such errors as quite exceptional


~323K SLoC