Rust libz blitz!


@briansmith ring is indeed a great crate, and it’s on the candidate list. I’m glad to hear you are confident that its random number facilities are the best in the ecosystem. It’s been on my shortlist of crates the libs team might want to schedule soon.

Are you interested in having the community / libs team evaluate it as part of the libz blitz sometime?


@briansmith How close do you think ring is to a 1.0 release? Might it happen this year?

Literally releasing 1.0 isn’t necessarily a goal here, but it is a consideration.


I think it would make more sense to stabilize a new version of rand with a much simpler API like ring’s and the implementation details from ring (e.g. the feature flag to turn off the fallback to /dev/urandom for facilitating sandboxing that blocks file I/O syscalls).

There are lots of things that you could do in libstd that could be done in Rust, which currently require C/asm in ring because of the lack of stable (proper) access to syscalls and RDRAND/RDSEED in stable Rust, which is what ring targets.

In other words, I’m not proposing that ring be the replacement for rand, but rand’s API should be fixed to be closer to ring’s than its current API.


1.0 is partly marketing and partly about some kind of commitment to a stable API.

As far as marketing goes, I’ve debated releasing 1.0, 2.0, 3.0, etc. instead of 0.6, 0.7, 0.8, etc. but it doesn’t matter enough for me to bother with.

As far as the API stability goes, I know there will be more breaking changes (e.g. the AEAD API) this summer (I hope) but I’ve not considered trying to finalize any part of the API. Especially there are some parts of the API that would change if/when things like const fn and statics in constant position (e.g. x: [u8 ; ring::digest::SHA256::output_len];) were/are added to the language.

Regarding some things that are in the API guidelines, like the capitalization requirements for SHA256 vs Sha256, I’d like to see some evidence showing that those things actually have a significant positive difference vs. being over- or wrongly- specified before I make changes like that.


@brson I’m happy to pick up same-file, since we’ve already been over it a bit in the walkdir evaluation


Awesome. It’s yours! You can just run it in the same way as the previous one.

This week I am at a Mozilla all-hands and won’t have much time to devote directly to this, but next I’ll make sure we get some more evaluations underway.


Thanks for the feedback @briansmith. I’ll try to incorporate it into the rand evaluation, and to solicit more of your advice when it gets underway.


I’ve started a topic for same-file.

I thought it was still worth time-boxing the evaluation component even though there isn’t a libs meeting. I gave it 2 weeks from today, but am happy to change or remove that.


As we are quite low on actionable example ideas in cookbook. I was thinking about adding some:

But some crates have pretty awesome tutorials/cookbooks by them selves like csv does. What would be the approach for such crates?


Looks like I haven’t got permission to make the same-file OP a wiki. No wrench icon produced by expanding the ... for me :disappointed:


I don’t pretend to know the inner workings of Discourse, but I used my powers to make it a wiki. :slight_smile:


I think we can steal them, with the authors’ permissions!


Thanks @KodrAus!

@budziq, yes please, begin creating more recipe ideas.


Argh, it looks like I missed the status update last week again, and I’m not going to get it done today. Sorry for falling behind, but I will catch up next week. Thank you so much @KodrAus, @budziq, and @burntsushi for keeping things moving :heart:

Next week I will endeavor to catch up on reviews, open the rand evaluation, resolve a number of guidelines issues, and close out some of the early evaluations with version bumps and releases.

It came to my attention recently that CC0 would be more a more appropriate license for the cookbook, so I filed an issue against it:


I’ve prepared a PR but IANAL so I would appreciate someone looking into it prior to merging :slight_smile:


Howdy Brian, I’ve at last convinced my RNG-expert friend to start concretely listing his discontents with the current rand lib and coding up some prototypes of alternatives. Feel free to keep the rand review scheduled for 7/25, hopefully we’ll have something more to chew on by this week.


@burntsushi would you stand some larceny :wink:? The examples in csv cookbook are excellent :heart: and would nicely complement the rust-cookbook.


Oh yes of course! I liked @brson’s comment. :slight_smile: I think having the examples in both places is probably quite valuable!


Thanks! I’ll try to revitalize rust-cookbook in upcoming days. Sorry I didn’t catch the like.


@budziq Yeah, I’ll follow up on this. We’re going to need to put some effort into it to get people to relicense.

@bstrie I’ve spoken with @bhickey a bit and encouraged them to participate in the upcoming showdown.

I’ve signed myself up to lead the rand evaluation and will open it … Friday I think.

I also added toml to the desired out-of-band evaluations after an unsatisfying experience trying to lead somebody through the docs over the weekend. I intend to solicit more help leading these evaluations to the twir call for participation, but am still agonizing over the difficulty of motivating crate leads (thanks so much @KodrAus :heart:). I think it’s a pretty intimidating process but it’s actually really simple to e.g. go over the toml crate and make a list of documentation remediations.

I’m triaging now to create a status report.

Edit: I made a desperate plea to twir.