Summary
Motivation
#934 and #1574 provide motivation for the switch to chacha20.
The MSRV bump is required by chacha20; releasing this as rand v0.10 not v0.9.x makes the MSRV bump less problematic and the significant change in dependency more transparent.
Not making a breaking release for rand_core makes the transition to rand v0.10 easier for users: RngCore/CrpytoRng/... implementations and bounds will be compatible across rand v0.9 and v0.10.
Alternatives
No CSPRNG (by default)
OsRng (i.e. the OS getrandom / ... interfaces) is fast enough for many use-cases already, so not everyone actually needs a thread-local in-process CSPRNG. #1545 proposes this.
No CSPRNG at all
We could go even further and completely drop ThreadRng, but I don't see much incentive over #1545 (the main one being simplicity).
Summary
getrandomv0.3.4rand_corev0.10chacha20v0.10 release (@tarcieri)rand_chachawithchacha20(draft: Adapt to chacha20 #1642; closes Replacing rand_chacha with chacha20 #934)randv0.10 usingrand_corev0.9.xv0.10Motivation
#934 and #1574 provide motivation for the switch to
chacha20.The MSRV bump is required by
chacha20; releasing this asrandv0.10 not v0.9.x makes the MSRV bump less problematic and the significant change in dependency more transparent.Not making a breaking release for
rand_coremakes the transition torandv0.10 easier for users:RngCore/CrpytoRng/... implementations and bounds will be compatible acrossrandv0.9 and v0.10.Alternatives
No CSPRNG (by default)
OsRng(i.e. the OSgetrandom/ ... interfaces) is fast enough for many use-cases already, so not everyone actually needs a thread-local in-process CSPRNG. #1545 proposes this.No CSPRNG at all
We could go even further and completely drop
ThreadRng, but I don't see much incentive over #1545 (the main one being simplicity).