rust-random / rust-random/rand

CHANGE: Re-enable `ReseedingRng`

Open
#1,748 13 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
2.1k
Forks
512
Avg merge
3d 9h
Merged PRs (30d)
7

Description

Summary

How does this affect the API / end-user? (Include API-breaking changes, value-breaking changes and API additions.)

rand's user can access the ReseedingRng struct that was previously avaible until rand v0.10. This struct has been removed in v0.10. A related issue: https://github.com/rust-random/rand/issues/1721.

Details

What changes does this require internally?

It might be as simple as reverting this PR: https://github.com/rust-random/rand/pull/1722.

git revert bfa14ab4d0f2a5c161478aafe4a1edee02547f03

Essentially, we would like this struct to be made available, instead of be deprecated completely.

Motivation

What is the motivation for this change?

Since every change has a cost (even if just API churn or extra code size), every change must have sufficient motivation. This is arguably the most important part of the RFC.

We use rand for generating random bytes in s2n-quic: a rust implementation of the QUIC protocol. We use rand for both public and private generator. We will add more details about how we use ReseedingRng in our own issue: https://github.com/aws/s2n-quic/issues/2986.

Alternatives

Which alternatives might be considered, and why or why not?

One alternative is to implement a ReseedingRng wrapper in s2n-quic for our own usage. I think having it from rand is more preferable.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing PR #1722 and commit bfa14ab4d0f2a5c161478aafe4a1edee02547f03, then compare the current rand v0.10 API with the ReseedingRng documentation linked in the issue. Done means ReseedingRng is publicly available again rather than only deprecated, with the affected API behavior verified.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
backend-api-design
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.