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
134 downloads per month
Used in 3 crates
(2 directly)
140KB
2.5K
SLoC
雪風(Yukikaze)
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 ofrustls
for default SSL implementation. By defaulton
compu
- Enables compression support. By defaulton
.encoding
- Enablesencoding
crate support. Defaultoff
.websocket
- Enables Websocket Upgrade mechanism. Defaultoff
. Enablescarry_extensions
whenon
.carry_extensions
- Carrieshttp::Extensions
from request to resolvedResponse
. Defaultoff
.
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