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-proxy crate is unmaintained, and depends on old rustls and ring-rs #158

Open
awakecoding opened this issue Feb 25, 2025 · 2 comments
Assignees

Comments

@awakecoding
Copy link

This project uses hyper-proxy 0.9.1, a crate which hasn't been updated in at least 4 years: https://github.com/tafia/hyper-proxy

It looks like a classic case of a useful project being abandoned, and for which pull requests to update it aren't merged. Someone apparently got tired of waiting for released an updated version of the crate as hyper-proxy2 last year: https://crates.io/crates/hyper-proxy2

I am reviewing our dependencies to see if we can fully get rid of ring-rs imported through rustls, as the latest versions of rustls default to aws-lc-rs for the cryptographic library. aws-lc-rs supports a FIPS mode which I'm interested in.

Would it be possible to move away from the unmaintained hyper-proxy crate to make it easier to update the rustls dependency?

Thanks!

@awakecoding
Copy link
Author

We've got the change done on a branch: awakecoding#1
The problem is the branch is based on the currently unmerged branch from #137

We'd need to start merging those changes instead of patching on top of unmerged branches, and we'd need to cut a release after that. I also confirm that with all those changes on the branch, all I needed to do after that was to bump the version of futures-rustls and tokio-tungstenite to get a single version of rustls reported by cargo tree, and managed to get a clean build without ring-rs.

@dthomasngrokker dthomasngrokker self-assigned this Mar 11, 2025
@awakecoding
Copy link
Author

@dthomasngrokker I saw #162 got merged, now the next thing pulling outdated dependencies is this. We have a commit here that can be adapted: awakecoding@962c544

I suggest using cargo tree to inspect dependencies:

cargo tree -i ring

in my case it reports [email protected] (old, should be purged) and [email protected] (newer, may be harder to purge). Here's what I have for [email protected] with the latest main branch:

 cargo tree -i [email protected]
ring v0.16.20
├── rustls v0.19.1
│   ├── hyper-rustls v0.22.1
│   │   └── hyper-proxy v0.9.1
│   │       └── ngrok v0.14.0-pre.17 (~/git/ngrok-rust/ngrok)
│   │           └── cargo-doc-ngrok v0.2.0 (~/git/ngrok-rust/cargo-doc-ngrok)
│   ├── rustls-native-certs v0.5.0
│   │   ├── hyper-proxy v0.9.1 (*)
│   │   └── hyper-rustls v0.22.1 (*)
│   └── tokio-rustls v0.22.0
│       ├── hyper-proxy v0.9.1 (*)
│       └── hyper-rustls v0.22.1 (*)
├── sct v0.6.1
│   ├── ct-logs v0.8.0
│   │   └── hyper-rustls v0.22.1 (*)
│   └── rustls v0.19.1 (*)
└── webpki v0.21.4
    ├── hyper-proxy v0.9.1 (*)
    ├── hyper-rustls v0.22.1 (*)
    ├── rustls v0.19.1 (*)
    └── tokio-rustls v0.22.0 (*)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants