48 releases (11 stable)

1.0.10 Jul 23, 2020
1.0.5 May 15, 2020
1.0.4 Mar 21, 2020
1.0.3 Dec 31, 2019
0.3.1 Nov 23, 2018

#304 in HTTP client

Download history 1/week @ 2024-07-28 101/week @ 2024-09-22 46/week @ 2024-09-29

134 downloads per month
Used in 3 crates (2 directly)

Apache-2.0

140KB
2.5K SLoC

雪風(Yukikaze)

Build Crates.io Documentation dependency status

Yukikaze image

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

Features

  • 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.

Examples

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

Q&A

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


Dependencies

~15–22MB
~417K SLoC