-
-
Notifications
You must be signed in to change notification settings - Fork 396
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
Consider reexporting rustls #300
Comments
We also have a ring |
I'd prefer to just push through to start exposing the traits, I just need to explore the best way to go about it. My main open question is if it's possible to close a type over an internal type parameter. |
I think we'll still want rustls to Just Work by default at least at the high level API, since TLS is standard QUIC and rustls is by far the most convenient impl. This seems difficult to do without publicly referencing its types, even if only by implementing public traits for them and placing them in default type parameters.
I'm not sure what this is describing; could you provide an example? |
I wanted to hang this off
Basically, can we have a |
I think this is achievable, I just want to make sure that users will get rustls out of the box if they don't go out of their way for something else.
This is generally feasible through trait objects, though it can be a little boilerplatey. I expect the public interface of |
I now think it makes sense to reexport rustls conditional on the relevant features. I feel like the crypto session provider dependency is fairly fundamental and, although we can try to make the API opaque for simple cases, there's enough moving bits and pieces here that wrapping everything is practically quite hard. |
Please consider reexporting |
@jonatanzeidler want to submit a PR to implement this? |
Running into this with a brand new project that picks uses |
Yes: #1715. |
See also #1737. |
rustls
ClientConfig
andServerConfig
structs are consumed by quinn-proto's public API, but cannot be constructed by a caller without additionally depending upon rustls. This is an ergonomic wart, and could become particularly annoying if a caller needs a different major version of rustls in their crate than ours. Reexporting the crate, and referencing its types directly rather than through the internalcrypto
facade when they appear in public locations, provides convenient access to exactly the version our interfaces need.This is contrary to the spirit of our internal efforts to avoid being tightly coupled with rustls, but those efforts aren't currently exposed regardless.
The text was updated successfully, but these errors were encountered: