Open
Description
Hyper is planning a major 1.0 milestone that will impact many of their public APIs and, therefore, the proxy. We should get a better understanding of the planned changes so that we can begin to scope and plan the required proxy changes (and so that we can provide meaningful feedback before the APIs are finalized).
"here's some links!" -kate 💐 🧢
issues and pull requests related to upgrading linkerd2 to hyper 1.0:
- refactor(proxy/http): create
linkerd-http-version
crate linkerd2-proxy#3379 - refactor(proxy/http): create
linkerd-http-insert
crate linkerd2-proxy#3380 - refactor(proxy/http): extricate
Body
middleware types linkerd2-proxy#3382 - chore(hyper): enable
deprecated
feature flag linkerd2-proxy#3405 - chore(server/conn): backport
max_pending_accept_reset_streams()
hyperium/hyper#3796 - refactor(app): update deprecated hyper body calls linkerd2-proxy#3411
- refactor(app/test): remove unused test
Server
interfaces linkerd2-proxy#3421 - chore(proxy/http): address
hyper::client::conn::Builder
deprecations linkerd2-proxy#3427 - refactor(app/test): minor tweaks to
linkerd-app-test
linkerd2-proxy#3428 - chore(app/inbound): address
server::conn::Http
deprecations linkerd2-proxy#3432 - refactor(app/test): address hyper deprecations in test helpers linkerd2-proxy#3433
- chore(hyper): address miscellaneous deprecations linkerd2-proxy#3444
- chore(app/inbound): address hyper deprecations in http/2 tests linkerd2-proxy#3445
- chore(app/inbound): address hyper deprecations in http/1 tests linkerd2-proxy#3454
- chore(fuzz): address hyper deprecations in fuzz tests linkerd2-proxy#3455
- chore(hyper): define hyper as a workspace dependency linkerd2-proxy#3456
- chore(hyper): upgrade hyper to include hyperium/hyper#3796 linkerd2-proxy#3457
- chore(ci): remove duplicate
connect_and_accept_http1(..)
function linkerd2-proxy#3461 - chore(proxy/http): address hyper deprecations in
ServeHttp<N>
linkerd2-proxy#3459 - docs(app/test): fix unresolved
SendRequest
links linkerd2-proxy#3465 - chore(cargo.toml): define http workspace dependencies linkerd2-proxy#3466
- refactor: move away from legacy
hyper::body::HttpBody
linkerd2-proxy#3467 - feat(http/box):
BoxBody::empty()
creates an empty body linkerd2-proxy#3468 - chore(deps): update to http v1 versions linkerd2-proxy-api#421
- chore(deps): update from hyper
0.14.28
to0.14.32
#13492 - chore(deps): address hyper deprecations in policy controller #13493
- fix(http2): gate server
Builder
keep-alive interfaces hyperium/hyper#3816 - chore(hyper): upgrade to hyper 0.14.32 linkerd2-proxy#3472
- chore(cargo.toml): define more workspace dependencies linkerd2-proxy#3473
- chore(http/upgrade): replace
hyper::Body
withBoxBody
linkerd2-proxy#3479 - sync: add
Receiver::poll_recv(..)
method tokio-rs/tokio#7059 - refactor(http/retry):
PeekTrailersBody<B>
only peeks empty bodies linkerd2-proxy#3509 - util: add a channel body hyperium/http-body#140
- chore(http/retry): use boxed bodies instead of
hyper::Body
linkerd2-proxy#3515 - chore(http-body): update msrv to 1.61 hyperium/http-body#141
- refactor(http/upgrade): internal interfaces are private linkerd2-proxy#3530
- docs(http/upgrade): document
linkerd-http-upgrade
linkerd2-proxy#3531 - refactor(http/upgrade):
Http11Upgrade
isClone
linkerd2-proxy#3540 - feat(http/retry): add a unit test suite to
PeekTrailersBody<B>
linkerd2-proxy#3556 - fix(http/retry):
is_end_stream()
is true for empty bodies linkerd2-proxy#3558 - feat(http/retry): model
PeekTrailersBody<B>
withFrame<T>
linkerd2-proxy#3559 - refactor(http/retry): port some
ReplayBody
tests toFrame<T>
linkerd2-proxy#3564 - refactor(http/retry): port remaining
ReplayBody
tests toFrame<T>
linkerd2-proxy#3567 - refactor(http/retry): update more
Body::data()
calls linkerd2-proxy#3573 - feat(http/retry): add more replay body test coverage linkerd2-proxy#3583
- docs: notes on poll_frame return values hyperium/http-body#144
- refactor(http/retry): replayed body is not optional linkerd2-proxy#3585
- refactor(http/retry): use
Poll::{map_ok, map_err}
linkerd2-proxy#3586 - refactor(http/retry): outline bounded replay buffer linkerd2-proxy#3597
- feat(http/retry): model
ReplayBody<B>
withFrame<T>
linkerd2-proxy#3598
in particular, this PR: