Upgrading hyper 0.13 to 0.14
Breaking0.13.10 → 0.14.32Breaking11Security4New35Changed4Fixed37Other1
BreakingUpgrade verdict
10 breaking changes and 4 security fixes.
In plain terms
- If you use the unstable FFI and want HTTP/1 header case preserved, you must now turn that option on yourself.
- You must now enable the client feature to use hyper's HTTP client.
- You must now enable the http1 feature to use HTTP/1.
- hyper no longer emits log records by default; enable tracing's log feature to get them.
Must act Top 5 of 14 that need code or config changes
What you must change
Breaking10
hyper_clientconn_options_new no longer enables http1_preserve_header_case by default in unstable ffi.hyper_clientconn_options_newhyper_clientconn_options_set_preserve_header_casehttp1_preserve_header_caseMakes the client an optional feature, disabled by default.
clientMakes HTTP/1 support an optional feature, disabled by default.
http1http2Removes automatic log record emission; tracing log feature must be enabled.
tracingDisables all optional features by default.
Makes the server code an optional feature, disabled by default.
serverRemoves http1_writev methods from client and server builders.
http1_writevclient::Builderclient::conn::Builderserver::Builderserver::conn::BuilderAsyncWrite::is_write_vectoredDNS Resolver now resolves to SocketAddrs instead of IpAddrs.
HttpConnectorSocketAddrIpAddrUpgrades to Tokio 1.0, Bytes 1.0 and http-body 0.4.
tokiobyteshttp-bodyMoves HTTP upgrades off Body to a new API.
Body::on_upgrade()hyper::upgrade::onSecurity4
Parser creates invalid uninitialized value
Integer overflow in
Critical · CVSS 9.1hyper's parsing of the Transfer-Encoding header leads to data lossLenient
Medium · CVSS 5.3hyper header parsing of Content-Length could allow request smugglingMultiple Transfer-Encoding headers misinterprets request payload
High · CVSS 8.1