All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Bump the MSRV to 1.61.0
- The
serde1
feature has been renamedserde
(#1477)
This is a pre-release. To depend on this version, use rand_core = "=0.9.0-alpha.0"
to prevent automatic updates (which can be expected to include breaking changes).
- Bump MSRV to 1.60.0 (#1207, #1246, #1269, #1341)
- Allow
rand_core::impls::fill_via_u*_chunks
to mutate source (#1182) - Add
fn RngCore::read_adapter
implementingstd::io::Read
(#1267) - Add
trait CryptoBlockRng: BlockRngCore
; maketrait CryptoRng: RngCore
(#1273) - Use
zerocopy
to replace someunsafe
code (#1349, #1393)
- Fix unsoundness in
<BlockRng64 as RngCore>::next_u32
(#1160) - Reduce use of
unsafe
and improve gen_bytes performance (#1180) - Add
CryptoRngCore
trait (#1187, #1230)
- Improved bound for
serde
impls onBlockRng
(#1130) - Minor doc additions (#1118)
- Fixed assertions in
le::read_u32_into
andle::read_u64_into
which could have allowed buffers not to be fully populated (#1096)
- Avoid panic when using
RngCore::seed_from_u64
with a seed which is not a multiple of four (#1082)
- Enable all stable features in the playground (#1081)
- Bump MSRV to 1.36, various code improvements (#1011)
- Update to getrandom v0.2 (#1041)
- Fix:
next_u32_via_fill
andnext_u64_via_fill
now use LE as documented (#1061)
- Reduce usage of
unsafe
(#962, #963, #1011) - Annotate feature-gates in documentation (#1019)
- Document available error codes (#1061)
- Various documentation tweaks
- Fix some clippy warnings (#1036)
- Apply rustfmt (#926)
OsRng
added torand_core
(#863)Error::INTERNAL_START
andError::CUSTOM_START
constants (#864)Error::raw_os_error
method (#864)Debug
andDisplay
formatting forgetrandom
error codes withoutstd
(#864)
alloc
feature inno_std
is available since Rust 1.36 (#856)- Added
#[inline]
toError
conversion methods (#864)
- Enable testing with Miri and fix incorrect pointer usages (#779, #780, #781, #783, #784)
- Rewrite
Error
type and adjust API (#800) - Adjust usage of
#[inline]
forBlockRng
andBlockRng64
- Disable the
std
feature by default (#702)
- Add
SeedableRng::seed_from_u64
for convenient seeding. (#537)
- References to a
CryptoRng
now also implementCryptoRng
. (#470)
- Enable the
std
feature by default. (#409) - Remove
BlockRng{64}::inner
andBlockRng::inner_mut
; instead makingcore
public - Change
BlockRngCore::Results
bound to also requireAsMut<[Self::Item]>
. (#419)
- Add
BlockRng{64}::index
andBlockRng{64}::generate_and_set
. (#374, #419) - Implement
std::io::Read
for RngCore. (#434)
(Split out of the Rand crate, changes here are relative to rand 0.4.2.)
RngCore
andSeedableRng
are now part ofrand_core
. (#288)- Add modules to help implementing RNGs
impl
andle
. (#209, #228) - Add
Error
andErrorKind
. (#225) - Add
CryptoRng
marker trait. (#273) - Add
BlockRngCore
trait. (#281) - Add
BlockRng
andBlockRng64
wrappers to help implementations. (#281, #325) - Add
RngCore::try_fill_bytes
. (#225)
- Revise the
SeedableRng
trait. (#233) - Remove default implementations for
RngCore::next_u64
andRngCore::fill_bytes
. (#288)
Experimental version as part of the rand crate refactor.