Replace rand_core
's std
feature with alloc
#8
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.
Motivation
The
std
feature fromrand_core
activates thealloc
feature and thegetrandom
feature, which ends up includinggetrandom
as a dependency.For WebAssembly targets, it's only possible to obtain entropy if there's an external function that provides that. Because of this,
getrandom
only works if there are Javascript APIs enabled. If there aren't, it fails to build.Solution
The source of entropy isn't needed inside the library, therefore, the
getrandom
feature does not need to be enabled. Therefore it's enough to replace enabling thestd
feature with enabling just thealloc
feature.There is a use case in a documentation test, which uses
OsRng
. However, it's still not necessary to manually enable thegetrandom
feature indev-dependencies
, because thecurve25519-dalek
dependency'sdefault
feature enablesrand_core
'sstd
dependency.Release Notes
I believe this is a backward compatible change. I think there could be a situation where some project has a dependency on
rand_core
without its default features and onmerlin
, and unknowingly usesgetrandom
, which with this PR would fail to compile. However, the solution would be to fix therand_core
dependency to enable the required feature.