24 curated breaking changes across major versions of rand. Use this as a migration checklist before bumping dependencies.
Enable feature `small_rng` by default ([#1455])
Use `zerocopy` to replace some `unsafe` code ([#1349], [#1393], [#1446], [#1502])
Bump the MSRV to 1.63.0 ([#1207], [#1246], [#1269], [#1341], [#1416], [#1536]); note that 1.60.0 may work for dependents when using `--ignore-rust-version`
Update to `rand_core` v0.9.0 ([#1558])
Support `std` feature without `getrandom` or `rand_chacha` ([#1354])
Annotate panicking methods with `#[track_caller]` ([#1442], [#1447])
Add feature `thread_rng` ([#1547])
Add fn `RngCore::read_adapter` implementing `std::io::Read` ([#1267])
Add trait `CryptoBlockRng: BlockRngCore`; make `trait CryptoRng: RngCore` ([#1273])
Add traits `TryRngCore`, `TryCryptoRng` ([#1424], [#1499])
Add bounds `Clone` and `AsRef` to associated type `SeedableRng::Seed` ([#1491])
Add top-level fns `random_iter`, `random_range`, `random_bool`, `random_ratio`, `fill` ([#1488])
Re-introduce fn `Rng::gen_iter` as `random_iter` ([#1305], [#1500])
Policy: "rand is not a crypto library" ([#1514])
Remove fork-protection from `ReseedingRng` and `ThreadRng`. Instead, it is recommended to call `ThreadRng::reseed` on fork. ([#1379])
Rename fn `rand::thread_rng()` to `rand::rng()` and remove from the prelude ([#1506])
Remove fn `rand::random()` from the prelude ([#1506])
Remove implicit feature `rand_chacha`; use `std_rng` instead. ([#1473])
Rename fns `Rng::gen_range` to `random_range`, `gen_bool` to `random_bool`, `gen_ratio` to `random_ratio` ([#1505])
Rename `fn SeedableRng::from_rng` -> `try_from_rng` and add infallible variant `fn from_rng` ([#1424])
Rename fn `Rng::gen` to `random` to avoid conflict with the new `gen` keyword in Rust 2024 ([#1438])
Rename `fn SeedableRng::from_entropy` -> `from_os_rng` and add fallible variant `fn try_from_os_rng` ([#1424])
Rename feature `serde1` to `serde` ([#1477])
Rename feature `getrandom` to `os_rng` ([#1537])
Get this data programmatically \u2014 free, no authentication.
curl https://depscope.dev/api/breaking/cargo/rand