Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hyper 1.x upgrade #360

Closed
fussybeaver opened this issue Dec 21, 2023 · 0 comments · Fixed by #363
Closed

Hyper 1.x upgrade #360

fussybeaver opened this issue Dec 21, 2023 · 0 comments · Fixed by #363
Labels
dependencies Pull requests that update a dependency file

Comments

@fussybeaver
Copy link
Owner

fussybeaver commented Dec 21, 2023

The recent release of hyper 1.0 and onwards has changed a large portion of the API that Bollard was exposed to. I'll try to keep this ticket up-to-date with my findings.

This piece of work should require these independent parts, where I'm happy to have some help if there's motivation.

  • Upgrade hyperlocal, which is possibly no longer maintained. It looks like a fairly straightforward upgrade if using the hyper-util legacy client, at least on the client-side, but that might be undesirable long term. (any help here updating / adopting much appreciated).
    • There is an existing PR that works for Bollard's needs.
  • Upgrade hyper-rustls - there is a PR being worked on already, so I'm hopeful this work should be useable soon, and it looks useful as a reference.
    • This aforementioned PR is merged and release 0.26 contains the needed hyper upgrade.
  • Hyper 1.x uses significantly different semantics of Request/Response body types, streaming and upgraded connections, which I've been working on in Bollard in a local branch.
    • Hyper 1.x has extracted the async read/write traits in order to distance itself from the Tokio type system and let other execution runtimes such as Fuchsia / Curl be used.. Unfortunately, in Bollard we still uses these traits to frame payloads, and the buildkit feature uses it for grpc communication, so we'll need to provide tokio wrappers.
  • There is a "named-pipe" module in Bollard, which I haven't looked at yet, that would need to be upgraded to use Hyper's new API - I'm wondering if this should be replaced by something else or we can break it out into another crate. Any help here much appreciated.
  • In parallel the rustls 0.22 upgrade is possibly also needed, which does look like a smaller change in the API, but nevertheless could be tackled separately.
  • yup-hyper-mock also needs to be upgraded to use hyper 1.x
@fussybeaver fussybeaver added help wanted Extra attention is needed dependencies Pull requests that update a dependency file labels Dec 21, 2023
@fussybeaver fussybeaver mentioned this issue Jan 15, 2024
3 tasks
@fussybeaver fussybeaver removed the help wanted Extra attention is needed label Jan 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant