feat(rumqttc): add use-rustls-no-provider feature#988
Merged
giridher-art merged 1 commit intobytebeamio:mainfrom Sep 14, 2025
Merged
feat(rumqttc): add use-rustls-no-provider feature#988giridher-art merged 1 commit intobytebeamio:mainfrom
giridher-art merged 1 commit intobytebeamio:mainfrom
Conversation
2 tasks
giridher-art
requested changes
Sep 11, 2025
Collaborator
giridher-art
left a comment
There was a problem hiding this comment.
@Matt3o12 LGTM , Update the CHANGELOG
Contributor
Author
|
Hey thanks for the review. I have already updated the changelog.md and I have also rebased my commit to the tip of main again, maybe this fixes the pipeline failures? |
Collaborator
|
@Matt3o12 can you include the changes in unreleased section? |
Add new feature 'use-rustls-no-provider' which uses rustls but does not enable the default features so that the consumer can choose which crypto backend to use (ring, or rustls-openssl, etc) without being forced to compile aws_lc_rs. Because it is a new feature, this should be backwards compatible. Ideally, this crate should not have used default = true at all but just removing it could break some clients that expect rumqttc to run without explicitly specifying the dependency. Worse, adding 'default-features = False' would allow the clients to compile but panic during runtime with ``` Could not automatically determine the process-level CryptoProvider from Rustls crate features. Call CryptoProvider::install_default() before this point to select a provider manually, or make sure exactly one of the 'aws-lc-rs' and 'ring' features is enabled. See the documentation of the CryptoProvider type for more information. ``` This feature is inspired by reqwest which has a similar feature: 'rustls-tls-webpki-roots-no-provider'. Additionally, it might make sense to add the feature 'rustls-tls-min' in the future which does not pull in 'rustls-tls-webpki' and requires the developer to provide their own trust store with a custom config to make the binary smaller.
Contributor
Author
|
Sorry my bad, must have occurred while merging the changes. It should be under unreleased now. |
giridher-art
approved these changes
Sep 13, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add new feature 'use-rustls-no-provider' which uses rustls but does not enable the default features so that the consumer can choose which crypto backend to use (ring, or rustls-openssl, etc) without being
forced to compile aws_lc_rs.
Because it is a new feature, this should be backwards compatible. Ideally, this crate should not have used default = true at all but just removing it could break some clients that expect rumqttc to run
without explicitly specifying the dependency. Worse, adding 'default-features = False' would allow the clients to compile but panic during runtime with
Could not automatically determine the process-level CryptoProvider from Rustls crate features.
Call CryptoProvider::install_default() before this point to select a provider manually, or make sure exactly one of the 'aws-lc-rs' and 'ring' features is enabled.
See the documentation of the CryptoProvider type for more information.
This feature is inspired by reqwest which has a similar feature: 'rustls-tls-webpki-roots-no-provider'.
Additionally, it might make sense to add the feature 'rustls-tls-min' in the future which does not pull in 'rustls-tls-webpki' and requires the developer to provide their own trust store with a custom
config to make the binary smaller.
Type of change
Checklist:
cargo fmtCHANGELOG.mdif it's relevant to the users of the library. If it's not relevant mention why.