You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Bincode has spent a good probably most of its life at this point only being barely maintained with an occasional punctuation of activity, and help from the community has not been forthcoming (while a large part of that is because bincode is largely done as in feature complete and has been for some time, given it's maintenance status, it's quite frankly terrifying how much of the rust ecosystem depends on it, many of these projects would be much better served in multiple ways by using something that's not bincode).
I don't think it's particularly important that we stop using bincode here for any technical reasons; rather, it's because rand is a very popular reverse dependency of bincode, and probably contributes to its popularity. If popular crates switch to something else, we can hopefully reduce the number of people who reach for bincode simply due to its popularity.
Details
For the rand_pcg tests, I've removed the boilerplace with BufReader/BufWriter and switched to serializing to a Vec and deserializing from it. This is partly because postcard doesn't have their std::io interface quite worked out yet. Everything else is a fairly straightforward port.
Bumps rand from 0.9.4 to 0.10.1.
Changelog
Sourced from rand's changelog.
[0.10.1] — 2026-02-11
This release includes a fix for a soundness bug; see #1763.
Changes
Document panic behavior of make_rng and add #[track_caller] (#1761)
Deprecate feature log (#1763)
#1761: rust-random/rand#1761
#1763: rust-random/rand#1763
[0.10.0] - 2026-02-08
Changes
The dependency on rand_chacha has been replaced with a dependency on chacha20. This changes the implementation behind StdRng, but the output remains the same. There may be some API breakage when using the ChaCha-types directly as these are now the ones in chacha20 instead of rand_chacha (#1642).
Rename fns IndexedRandom::choose_multiple -> sample, choose_multiple_array -> sample_array, choose_multiple_weighted -> sample_weighted, struct SliceChooseIter -> IndexedSamples and fns IteratorRandom::choose_multiple -> sample, choose_multiple_fill -> sample_fill (#1632)
Use Edition 2024 and MSRV 1.85 (#1653)
Let Fill be implemented for element types, not sliceable types (#1652)
Fix OsError::raw_os_error on UEFI targets by returning Option<usize> (#1665)
Replace fn TryRngCore::read_adapter(..) -> RngReadAdapter with simpler struct RngReader (#1669)
Remove fns SeedableRng::from_os_rng, try_from_os_rng (#1674)
Remove Clone support for StdRng, ReseedingRng (#1677)
Use postcard instead of bincode to test the serde feature (#1693)
Avoid excessive allocation in IteratorRandom::sample when amount is much larger than iterator size (#1695)
Rename os_rng -> sys_rng, OsRng -> SysRng, OsError -> SysError (#1697)
Rename Rng -> RngExt as upstream rand_core has renamed RngCore -> Rng (#1717)
Additions
Add fns IndexedRandom::choose_iter, choose_weighted_iter (#1632)
Pub export Xoshiro128PlusPlus, Xoshiro256PlusPlus prngs (#1649)
Pub export ChaCha8Rng, ChaCha12Rng, ChaCha20Rng behind chacha feature (#1659)
Fn rand::make_rng() -> R where R: SeedableRng (#1734)
Removals
Removed ReseedingRng (#1722)
Removed unused feature "nightly" (#1732)
Removed feature small_rng (#1732)
#1632: rust-random/rand#1632
#1642: rust-random/rand#1642
#1649: rust-random/rand#1649
#1652: rust-random/rand#1652
#1653: rust-random/rand#1653
#1659: rust-random/rand#1659
#1665: rust-random/rand#1665
#1669: rust-random/rand#1669
#1674: rust-random/rand#1674
#1677: rust-random/rand#1677
#1693: rust-random/rand#1693
#1695: rust-random/rand#1695
#1697: rust-random/rand#1697
... (truncated)
Commits
27ff4cb Prepare v0.10.1: deprecate feature log (#1763)
98d0638 make_rng: document panic and add #[track_caller] (#1761)
54e5eaa Fix doc error (#1758)
1ce4c08 Bump itoa from 1.0.17 to 1.0.18 in the all-deps group (#1756)
ccb734b docs: fix typo in doc comment (#1754)
357eb7d Bump libc from 0.2.182 to 0.2.183 in the all-deps group (#1753)
5e77fe5 Fix trait references in documentation (#1752)
da89185 Bump the all-deps group with 3 updates (#1751)
50516ff Bump the all-deps group with 2 updates (#1749)
fd71de9 Bump the all-deps group with 2 updates (#1747)
Additional commits viewable in compare view
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
CHANGELOG.mdentrySummary
This PR switches from using
bincodetopostcardas the intermediate encoding for the serde roundtrip tests.Motivation
Someone in contact with the bincode maintainers has mentioned that it's not really maintained anymore and recommended the ecosystem switch away from it:
I don't think it's particularly important that we stop using bincode here for any technical reasons; rather, it's because
randis a very popular reverse dependency of bincode, and probably contributes to its popularity. If popular crates switch to something else, we can hopefully reduce the number of people who reach for bincode simply due to its popularity.Details
For the
rand_pcgtests, I've removed the boilerplace withBufReader/BufWriterand switched to serializing to aVecand deserializing from it. This is partly because postcard doesn't have theirstd::iointerface quite worked out yet. Everything else is a fairly straightforward port.