rand breaking changes

cargo

24 curated breaking changes across major versions of rand. Use this as a migration checklist before bumping dependencies.

24
changes
Breaking changes by transition
  • 0.8.5 \u2192 0.9.0behavior

    Enable feature `small_rng` by default ([#1455])

  • 0.8.5 \u2192 0.9.0breaking

    Use `zerocopy` to replace some `unsafe` code ([#1349], [#1393], [#1446], [#1502])

  • 0.8.5 \u2192 0.9.0breaking

    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`

  • 0.8.5 \u2192 0.9.0breaking

    Update to `rand_core` v0.9.0 ([#1558])

  • 0.8.5 \u2192 0.9.0breaking

    Support `std` feature without `getrandom` or `rand_chacha` ([#1354])

  • 0.8.5 \u2192 0.9.0breaking

    Annotate panicking methods with `#[track_caller]` ([#1442], [#1447])

  • 0.8.5 \u2192 0.9.0breaking

    Add feature `thread_rng` ([#1547])

  • 0.8.5 \u2192 0.9.0breaking

    Add fn `RngCore::read_adapter` implementing `std::io::Read` ([#1267])

  • 0.8.5 \u2192 0.9.0breaking

    Add trait `CryptoBlockRng: BlockRngCore`; make `trait CryptoRng: RngCore` ([#1273])

  • 0.8.5 \u2192 0.9.0breaking

    Add traits `TryRngCore`, `TryCryptoRng` ([#1424], [#1499])

  • 0.8.5 \u2192 0.9.0breaking

    Add bounds `Clone` and `AsRef` to associated type `SeedableRng::Seed` ([#1491])

  • 0.8.5 \u2192 0.9.0breaking

    Add top-level fns `random_iter`, `random_range`, `random_bool`, `random_ratio`, `fill` ([#1488])

  • 0.8.5 \u2192 0.9.0breaking

    Re-introduce fn `Rng::gen_iter` as `random_iter` ([#1305], [#1500])

  • 0.8.5 \u2192 0.9.0breaking

    Policy: "rand is not a crypto library" ([#1514])

  • 0.8.5 \u2192 0.9.0removed

    Remove fork-protection from `ReseedingRng` and `ThreadRng`. Instead, it is recommended to call `ThreadRng::reseed` on fork. ([#1379])

  • 0.8.5 \u2192 0.9.0removed

    Rename fn `rand::thread_rng()` to `rand::rng()` and remove from the prelude ([#1506])

  • 0.8.5 \u2192 0.9.0removed

    Remove fn `rand::random()` from the prelude ([#1506])

  • 0.8.5 \u2192 0.9.0removed

    Remove implicit feature `rand_chacha`; use `std_rng` instead. ([#1473])

  • 0.8.5 \u2192 0.9.0renamed

    Rename fns `Rng::gen_range` to `random_range`, `gen_bool` to `random_bool`, `gen_ratio` to `random_ratio` ([#1505])

  • 0.8.5 \u2192 0.9.0renamed

    Rename `fn SeedableRng::from_rng` -> `try_from_rng` and add infallible variant `fn from_rng` ([#1424])

  • 0.8.5 \u2192 0.9.0renamed

    Rename fn `Rng::gen` to `random` to avoid conflict with the new `gen` keyword in Rust 2024 ([#1438])

  • 0.8.5 \u2192 0.9.0renamed

    Rename `fn SeedableRng::from_entropy` -> `from_os_rng` and add fallible variant `fn try_from_os_rng` ([#1424])

  • 0.8.5 \u2192 0.9.0renamed

    Rename feature `serde1` to `serde` ([#1477])

  • 0.8.5 \u2192 0.9.0renamed

    Rename feature `getrandom` to `os_rng` ([#1537])

API access

Get this data programmatically \u2014 free, no authentication.

curl https://depscope.dev/api/breaking/cargo/rand
rand breaking changes — Cargo migration guide | DepScope