The `proc-macro-hack` crate isn't needed anymore.
Cookie has been updated to `0.16` for a while now, and no other crates
depend on it anymore, so no need for reqwest to have this either.
- Fixed cargo fmt
- Updated MSRV to v1.57.0, which is needed for `base64` v0.20
- Updated all actions to the latest versions. (Solves Annotation warnings)
- Replaced actions-rs with dtolnay actions or simple run's.
actions-rs is not supported anymore, and also causes warnings.
- Use Ubuntu 20.04 for `linux / nightly`.
The reason is that Ubuntu 22.04 uses OpenSSL v3, this currently is not compatible with hyper-tls it looks like. I also tried to update the `openssl-sys` crate but that doesn't solve the compile issue. Using a Ubuntu version that still has OpenSSL v1.1.1 resolves the CI for now.
since these variants are just way too large:
- Variant `Brotli` is 2752b
- Variant `Gzip` is 320b
- Variant `Deflate` is 240b
- Variant `Pending` is 88b
while variant `PlainText` is just 32b.
Having a large variant would make `Response` and
return type of `Response::bytes_stream` to be too large, which in turns
adds extra copy.
It would also means the generated async functions all have to be large,
and since rust MIR/LLVM isn't good at optimizing out stack copies for
async functions, it means more copies it going to occur for the
generated futures.
Also, rust MIR optimizer cannot inline generated futures, so any async
fns that passes these types around would have to be huge.
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
This change allows the `ClientBuilder::resolve_to_addrs` method to accept a
slice of `SocketAddr`s for overriding resolution for a single domain.
Allowing multiple IPs more accurately reflects behavior of `getaddrinfo`
and allows users to rely on hyper's happy eyeballs algorithm to connect
to a host that can accept traffic on IPv4 and IPv6.
* Check for schema during URL parse error handling. Lots of unit tests.
* Introduce BadScheme; an error source. Change schema to scheme. Use BadScheme instead of the error text to determine that a scheme is not present.
This commit improves the user experience of the users leveraging rustls.
When building the identity to use for requests, it's now possible to use
also private keys using Elliptic Curve that are encoded with SEC1
standard.
This is the default encoding used by openssl when EC keys are created.
Prior to this commit users had to convert those keys from the SEC1
encoding to the PKCS 8 one, which is something not trivial.
This feature has been recently added to rustls-pemfile crate.
Signed-off-by: Flavio Castelli <fcastelli@suse.com>
serde_urlencoded 0.7.0 has an incorrect serde version dependency.
This causes issues in `cargo update -Z minimal-versions` builds.
It's not noticeable while testing in CI because cookie_store depends
on serde 1.0.126, however because this is an optional dependency
there is a possibility that a project using reqwest won't enable
it.
At least `wrap_stream` it is written in plain text, but adding the visual flag should be better and coherent with `byte_stream` documentation, but nothing is shown for `From<File>` for `Body`.
Co-authored-by: kraktus <kraktus@users.noreply.github.com>