{"ecosystem":"cargo","package":"rand","from_version":null,"to_version":null,"changes":[{"from_version":"0.8.5","to_version":"0.9.0","change_type":"behavior","description":"Enable feature `small_rng` by default ([#1455])","migration_hint":null},{"from_version":"0.8.5","to_version":"0.9.0","change_type":"breaking","description":"Use `zerocopy` to replace some `unsafe` code ([#1349], [#1393], [#1446], [#1502])","migration_hint":null},{"from_version":"0.8.5","to_version":"0.9.0","change_type":"breaking","description":"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`","migration_hint":null},{"from_version":"0.8.5","to_version":"0.9.0","change_type":"breaking","description":"Update to `rand_core` v0.9.0 ([#1558])","migration_hint":null},{"from_version":"0.8.5","to_version":"0.9.0","change_type":"breaking","description":"Support `std` feature without `getrandom` or `rand_chacha` ([#1354])","migration_hint":null},{"from_version":"0.8.5","to_version":"0.9.0","change_type":"breaking","description":"Annotate panicking methods with `#[track_caller]` ([#1442], [#1447])","migration_hint":null},{"from_version":"0.8.5","to_version":"0.9.0","change_type":"breaking","description":"Add feature `thread_rng` ([#1547])","migration_hint":null},{"from_version":"0.8.5","to_version":"0.9.0","change_type":"breaking","description":"Add fn `RngCore::read_adapter` implementing `std::io::Read` ([#1267])","migration_hint":null},{"from_version":"0.8.5","to_version":"0.9.0","change_type":"breaking","description":"Add trait `CryptoBlockRng: BlockRngCore`; make `trait CryptoRng: RngCore` ([#1273])","migration_hint":null},{"from_version":"0.8.5","to_version":"0.9.0","change_type":"breaking","description":"Add traits `TryRngCore`, `TryCryptoRng` ([#1424], [#1499])","migration_hint":null},{"from_version":"0.8.5","to_version":"0.9.0","change_type":"breaking","description":"Add bounds `Clone` and `AsRef` to associated type `SeedableRng::Seed` ([#1491])","migration_hint":null},{"from_version":"0.8.5","to_version":"0.9.0","change_type":"breaking","description":"Add top-level fns `random_iter`, `random_range`, `random_bool`, `random_ratio`, `fill` ([#1488])","migration_hint":null},{"from_version":"0.8.5","to_version":"0.9.0","change_type":"breaking","description":"Re-introduce fn `Rng::gen_iter` as `random_iter` ([#1305], [#1500])","migration_hint":null},{"from_version":"0.8.5","to_version":"0.9.0","change_type":"breaking","description":"Policy: \"rand is not a crypto library\" ([#1514])","migration_hint":null},{"from_version":"0.8.5","to_version":"0.9.0","change_type":"removed","description":"Remove fork-protection from `ReseedingRng` and `ThreadRng`. Instead, it is recommended to call `ThreadRng::reseed` on fork. ([#1379])","migration_hint":null},{"from_version":"0.8.5","to_version":"0.9.0","change_type":"removed","description":"Rename fn `rand::thread_rng()` to `rand::rng()` and remove from the prelude ([#1506])","migration_hint":null},{"from_version":"0.8.5","to_version":"0.9.0","change_type":"removed","description":"Remove fn `rand::random()` from the prelude ([#1506])","migration_hint":null},{"from_version":"0.8.5","to_version":"0.9.0","change_type":"removed","description":"Remove implicit feature `rand_chacha`; use `std_rng` instead. ([#1473])","migration_hint":null},{"from_version":"0.8.5","to_version":"0.9.0","change_type":"renamed","description":"Rename fns `Rng::gen_range` to `random_range`, `gen_bool` to `random_bool`, `gen_ratio` to `random_ratio` ([#1505])","migration_hint":null},{"from_version":"0.8.5","to_version":"0.9.0","change_type":"renamed","description":"Rename `fn SeedableRng::from_rng` -> `try_from_rng` and add infallible variant `fn from_rng` ([#1424])","migration_hint":null},{"from_version":"0.8.5","to_version":"0.9.0","change_type":"renamed","description":"Rename fn `Rng::gen` to `random` to avoid conflict with the new `gen` keyword in Rust 2024 ([#1438])","migration_hint":null},{"from_version":"0.8.5","to_version":"0.9.0","change_type":"renamed","description":"Rename `fn SeedableRng::from_entropy` -> `from_os_rng` and add fallible variant `fn try_from_os_rng` ([#1424])","migration_hint":null},{"from_version":"0.8.5","to_version":"0.9.0","change_type":"renamed","description":"Rename feature `serde1` to `serde` ([#1477])","migration_hint":null},{"from_version":"0.8.5","to_version":"0.9.0","change_type":"renamed","description":"Rename feature `getrandom` to `os_rng` ([#1537])","migration_hint":null}],"total":24,"note":"Curated major-version breaking changes. Always verify against the package's official changelog before migrating.","_cache":"miss"}