2018-02-01 19:10:12 +01:00
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog ](http://keepachangelog.com/en/1.0.0/ )
and this project adheres to [Semantic Versioning ](https://semver.org/spec/v2.0.0.html ).
2024-03-22 12:33:33 +00:00
## [Unreleased]
- Bump the MSRV to 1.61.0
2024-07-26 14:48:53 +07:00
- The `serde1` feature has been renamed `serde` (#1477 )
2024-03-22 12:33:33 +00:00
2024-03-18 19:08:37 +00:00
## [0.9.0-alpha.1] - 2024-03-18
2024-02-18 17:02:05 +00:00
## [0.9.0-alpha.0] - 2024-02-18
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` implementing `std::io::Read` (#1267 )
- Add `trait CryptoBlockRng: BlockRngCore` ; make `trait CryptoRng: RngCore` (#1273 )
- Use `zerocopy` to replace some `unsafe` code (#1349 , #1393 )
2022-09-15 14:23:08 +01:00
## [0.6.4] - 2022-09-15
2021-08-19 20:35:45 +02:00
- Fix unsoundness in `<BlockRng64 as RngCore>::next_u32` (#1160 )
2022-09-15 14:23:08 +01:00
- Reduce use of `unsafe` and improve gen_bytes performance (#1180 )
- Add `CryptoRngCore` trait (#1187 , #1230 )
2021-08-19 20:35:45 +02:00
2021-06-14 10:04:59 +01:00
## [0.6.3] - 2021-06-15
### Changed
- Improved bound for `serde` impls on `BlockRng` (#1130 )
- Minor doc additions (#1118 )
2021-02-12 17:45:28 -08:00
## [0.6.2] - 2021-02-12
### Fixed
- Fixed assertions in `le::read_u32_into` and `le::read_u64_into` which could
have allowed buffers not to be fully populated (#1096 )
2021-01-01 14:34:38 +00:00
## [0.6.1] - 2021-01-03
### Fixed
- Avoid panic when using `RngCore::seed_from_u64` with a seed which is not a
multiple of four (#1082 )
2020-12-31 23:06:56 +09:00
### Other
- Enable all stable features in the playground (#1081 )
2020-12-07 11:09:20 +00:00
## [0.6.0] - 2020-12-08
### Breaking changes
2020-10-19 10:32:51 +01:00
- Bump MSRV to 1.36, various code improvements (#1011 )
- Update to getrandom v0.2 (#1041 )
2020-10-19 11:10:29 +01:00
- Fix: `next_u32_via_fill` and `next_u64_via_fill` now use LE as documented (#1061 )
2020-12-07 11:09:20 +00:00
### Other
2020-10-19 10:32:51 +01:00
- Reduce usage of `unsafe` (#962 , #963 , #1011 )
- Annotate feature-gates in documentation (#1019 )
2020-10-19 11:10:29 +01:00
- Document available error codes (#1061 )
2020-10-19 10:32:51 +01:00
- Various documentation tweaks
- Fix some clippy warnings (#1036 )
- Apply rustfmt (#926 )
2019-08-09 12:08:28 +01:00
## [0.5.1] - 2019-08-28
2019-08-09 10:06:10 +01:00
- `OsRng` added to `rand_core` (#863 )
2019-08-09 12:08:28 +01:00
- `Error::INTERNAL_START` and `Error::CUSTOM_START` constants (#864 )
- `Error::raw_os_error` method (#864 )
- `Debug` and `Display` formatting for `getrandom` error codes without `std` (#864 )
### Changed
2019-08-23 07:27:49 +01:00
- `alloc` feature in `no_std` is available since Rust 1.36 (#856 )
2019-08-09 12:08:28 +01:00
- Added `#[inline]` to `Error` conversion methods (#864 )
2019-08-09 10:06:10 +01:00
2019-06-05 11:16:11 +01:00
## [0.5.0] - 2019-06-06
2019-08-09 10:06:10 +01:00
### Changed
2019-06-05 11:16:11 +01:00
- Enable testing with Miri and fix incorrect pointer usages (#779 , #780 , #781 , #783 , #784 )
- Rewrite `Error` type and adjust API (#800 )
2019-06-06 09:32:09 +01:00
- Adjust usage of `#[inline]` for `BlockRng` and `BlockRng64`
2019-06-05 11:16:11 +01:00
2019-01-23 12:43:33 +00:00
## [0.4.0] - 2019-01-24
2019-08-09 10:06:10 +01:00
### Changed
2019-01-23 12:43:33 +00:00
- Disable the `std` feature by default (#702 )
2018-09-22 10:21:00 +01:00
## [0.3.0] - 2018-09-24
2019-08-09 10:06:10 +01:00
### Added
2018-09-22 10:21:00 +01:00
- Add `SeedableRng::seed_from_u64` for convenient seeding. (#537 )
2018-06-07 21:09:33 +01:00
## [0.2.1] - 2018-06-08
2019-08-09 10:06:10 +01:00
### Added
2018-06-07 21:09:33 +01:00
- References to a `CryptoRng` now also implement `CryptoRng` . (#470 )
2018-02-01 19:10:12 +01:00
2018-05-21 15:18:37 +02:00
## [0.2.0] - 2018-05-21
2019-08-09 10:06:10 +01:00
### Changed
2018-04-29 08:53:38 +02:00
- Enable the `std` feature by default. (#409 )
2018-05-03 16:35:18 +01:00
- Remove `BlockRng{64}::inner` and `BlockRng::inner_mut` ; instead making `core` public
2018-04-29 16:10:59 +02:00
- Change `BlockRngCore::Results` bound to also require `AsMut<[Self::Item]>` . (#419 )
2019-08-09 10:06:10 +01:00
### Added
- Add `BlockRng{64}::index` and `BlockRng{64}::generate_and_set` . (#374 , #419 )
2018-05-15 15:52:32 +02:00
- Implement `std::io::Read` for RngCore. (#434 )
2018-04-29 08:53:38 +02:00
## [0.1.0] - 2018-04-17
2019-08-09 10:06:10 +01:00
(Split out of the Rand crate, changes here are relative to rand 0.4.2.)
### Added
2018-03-23 13:33:34 +01:00
- `RngCore` and `SeedableRng` are now part of `rand_core` . (#288 )
2018-03-22 13:24:36 +01:00
- Add modules to help implementing RNGs `impl` and `le` . (#209 , #228 )
- Add `Error` and `ErrorKind` . (#225 )
- Add `CryptoRng` marker trait. (#273 )
- Add `BlockRngCore` trait. (#281 )
2018-04-13 09:58:03 +02:00
- Add `BlockRng` and `BlockRng64` wrappers to help implementations. (#281 , #325 )
2019-08-09 10:06:10 +01:00
- Add `RngCore::try_fill_bytes` . (#225 )
### Changed
2018-03-22 13:24:36 +01:00
- Revise the `SeedableRng` trait. (#233 )
- Remove default implementations for `RngCore::next_u64` and `RngCore::fill_bytes` . (#288 )
2018-02-01 19:10:12 +01:00
2018-03-23 13:33:34 +01:00
## [0.0.1] - 2017-09-14 (yanked)
2018-02-01 19:10:12 +01:00
Experimental version as part of the rand crate refactor.