# Rust libz blitz!

**URL:** <https://internals.rust-lang.org/t/rust-libz-blitz/5184>\
**Category:** libs\
**Created:** [May 5, 2017, 5:58pm UTC](https://internals.rust-lang.org/t/rust-libz-blitz/5184 "2017-05-05T17:58:18Z")\
**Posts on this page:** 20\
**Page:** 5

<div class="post-metadata">

**Author:** ![brson](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/brson/32/5197_2.png) [@brson](https://internals.rust-lang.org/u/brson)\
**Post date:** [June 20, 2017, 12:07am UTC](https://internals.rust-lang.org/t/rust-libz-blitz/5184/81 "2017-06-20T00:07:14Z")

</div>

> [@briansmith](#):
>
> It's already done better in ring.

@briansmith ring is indeed a great crate, and it's on the [candidate list](https://public.etherpad-mozilla.org/p/rust-crate-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?

---

<div class="post-metadata">

**Author:** ![brson](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/brson/32/5197_2.png) [@brson](https://internals.rust-lang.org/u/brson)\
**Post date:** [June 20, 2017, 12:21am UTC](https://internals.rust-lang.org/t/rust-libz-blitz/5184/82 "2017-06-20T00:21:08Z")

</div>

@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.

---

<div class="post-metadata">

**Author:** ![briansmith](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/briansmith/32/1306_2.png) [@briansmith](https://internals.rust-lang.org/u/briansmith)\
**Post date:** [June 20, 2017, 12:23am UTC](https://internals.rust-lang.org/t/rust-libz-blitz/5184/83 "2017-06-20T00:23:33Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![briansmith](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/briansmith/32/1306_2.png) [@briansmith](https://internals.rust-lang.org/u/briansmith)\
**Post date:** [June 20, 2017, 12:51am UTC](https://internals.rust-lang.org/t/rust-libz-blitz/5184/84 "2017-06-20T00:51:08Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![KodrAus](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/kodraus/32/2816_2.png) [@KodrAus](https://internals.rust-lang.org/u/KodrAus)\
**Post date:** [June 20, 2017, 1:16am UTC](https://internals.rust-lang.org/t/rust-libz-blitz/5184/85 "2017-06-20T01:16:20Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![brson](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/brson/32/5197_2.png) [@brson](https://internals.rust-lang.org/u/brson)\
**Post date:** [June 26, 2017, 9:26pm UTC](https://internals.rust-lang.org/t/rust-libz-blitz/5184/86 "2017-06-26T21:26:12Z")

</div>

> [@KodrAus](#):
>
> @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.

---

<div class="post-metadata">

**Author:** ![brson](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/brson/32/5197_2.png) [@brson](https://internals.rust-lang.org/u/brson)\
**Post date:** [June 26, 2017, 9:27pm UTC](https://internals.rust-lang.org/t/rust-libz-blitz/5184/87 "2017-06-26T21:27:41Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![KodrAus](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/kodraus/32/2816_2.png) [@KodrAus](https://internals.rust-lang.org/u/KodrAus)\
**Post date:** [June 28, 2017, 7:33am UTC](https://internals.rust-lang.org/t/rust-libz-blitz/5184/88 "2017-06-28T07:33:53Z")

</div>

I’ve started [a topic](https://internals.rust-lang.org/t/out-of-band-crate-evaluation-for-2017-07-11-same-file/5457) 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.

---

<div class="post-metadata">

**Author:** ![budziq](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/budziq/32/2289_2.png) [@budziq](https://internals.rust-lang.org/u/budziq)\
**Post date:** [June 29, 2017, 2:44pm UTC](https://internals.rust-lang.org/t/rust-libz-blitz/5184/89 "2017-06-29T14:44:24Z")

</div>

As we are quite [low on actionable example ideas](https://github.com/brson/rust-cookbook/issues?q=is%3Aissue+is%3Aopen+label%3Aexample) in cookbook. I was thinking about adding some:

- from [stdlib misc ideas](https://github.com/brson/rust-cookbook/issues/24)
- future evaluations
- out of band crates

But some crates have pretty awesome tutorials/cookbooks by them selves like [csv does](https://docs.rs/csv/1.0.0-beta.3/csv/cookbook/index.html). What would be the approach for such crates?

---

<div class="post-metadata">

**Author:** ![KodrAus](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/kodraus/32/2816_2.png) [@KodrAus](https://internals.rust-lang.org/u/KodrAus)\
**Post date:** [June 29, 2017, 10:52pm UTC](https://internals.rust-lang.org/t/rust-libz-blitz/5184/90 "2017-06-29T22:52:12Z")

</div>

> [@brson](#):
>
> Done. The way I did it was to click the "..." at the bottom of the post, then the wrench icon, then "make wiki".

Looks like I haven't got permission to make the [`same-file` OP](https://internals.rust-lang.org/t/out-of-band-crate-evaluation-for-2017-07-11-same-file/5457) a wiki. No wrench icon produced by expanding the `...` for me 😞

---

<div class="post-metadata">

**Author:** ![burntsushi](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/burntsushi/32/279_2.png) [@burntsushi](https://internals.rust-lang.org/u/burntsushi)\
**Post date:** [June 29, 2017, 11:28pm UTC](https://internals.rust-lang.org/t/rust-libz-blitz/5184/91 "2017-06-29T23:28:43Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![brson](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/brson/32/5197_2.png) [@brson](https://internals.rust-lang.org/u/brson)\
**Post date:** [June 30, 2017, 9:48pm UTC](https://internals.rust-lang.org/t/rust-libz-blitz/5184/92 "2017-06-30T21:48:56Z")

</div>

> [@budziq](#):
>
> But some crates have pretty awesome tutorials/cookbooks by them selves like csv does. What would be the approach for such crates?

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

---

<div class="post-metadata">

**Author:** ![brson](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/brson/32/5197_2.png) [@brson](https://internals.rust-lang.org/u/brson)\
**Post date:** [June 30, 2017, 9:49pm UTC](https://internals.rust-lang.org/t/rust-libz-blitz/5184/93 "2017-06-30T21:49:31Z")

</div>

Thanks @KodrAus!

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

---

<div class="post-metadata">

**Author:** ![brson](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/brson/32/5197_2.png) [@brson](https://internals.rust-lang.org/u/brson)\
**Post date:** [June 30, 2017, 10:17pm UTC](https://internals.rust-lang.org/t/rust-libz-blitz/5184/94 "2017-06-30T22:17:24Z")

</div>

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 ❤

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: [https://github.com/brson/rust-cookbook/issues/209](https://github.com/brson/rust-cookbook/issues/209)

---

<div class="post-metadata">

**Author:** ![budziq](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/budziq/32/2289_2.png) [@budziq](https://internals.rust-lang.org/u/budziq)\
**Post date:** [July 1, 2017, 6:05pm UTC](https://internals.rust-lang.org/t/rust-libz-blitz/5184/96 "2017-07-01T18:05:05Z")

</div>

> [@brson](#):
>
> t came to my attention recently that CC0 would be more a more appropriate license for the cookbook, so I filed an issue against it: [https://github.com/brson/rust-cookbook/issues/209](https://github.com/brson/rust-cookbook/issues/209)

[I've prepared a PR](https://github.com/brson/rust-cookbook/pull/210) but IANAL so I would appreciate someone looking into it prior to merging 🙂

---

<div class="post-metadata">

**Author:** ![bstrie](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/bstrie/32/94_2.png) [@bstrie](https://internals.rust-lang.org/u/bstrie)\
**Post date:** [July 2, 2017, 2:28am UTC](https://internals.rust-lang.org/t/rust-libz-blitz/5184/97 "2017-07-02T02:28:21Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![budziq](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/budziq/32/2289_2.png) [@budziq](https://internals.rust-lang.org/u/budziq)\
**Post date:** [July 4, 2017, 11:46am UTC](https://internals.rust-lang.org/t/rust-libz-blitz/5184/98 "2017-07-04T11:46:49Z")

</div>

> [@brson](#):
>
> I think we can steal them, with the authors' permissions!

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

---

<div class="post-metadata">

**Author:** ![burntsushi](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/burntsushi/32/279_2.png) [@burntsushi](https://internals.rust-lang.org/u/burntsushi)\
**Post date:** [July 4, 2017, 12:02pm UTC](https://internals.rust-lang.org/t/rust-libz-blitz/5184/99 "2017-07-04T12:02:57Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![budziq](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/budziq/32/2289_2.png) [@budziq](https://internals.rust-lang.org/u/budziq)\
**Post date:** [July 4, 2017, 12:15pm UTC](https://internals.rust-lang.org/t/rust-libz-blitz/5184/100 "2017-07-04T12:15:42Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![brson](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/brson/32/5197_2.png) [@brson](https://internals.rust-lang.org/u/brson)\
**Post date:** [July 5, 2017, 10:55pm UTC](https://internals.rust-lang.org/t/rust-libz-blitz/5184/101 "2017-07-05T22:55:45Z")

</div>

> [@budziq](#):
>
> but IANAL so I would appreciate someone looking into it prior to merging 🙂

@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](#):
>
> 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.

@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 ❤). 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](https://users.rust-lang.org/t/twir-call-for-participation/4821/81) to twir.

[Previous page](https://internals.rust-lang.org/t/rust-libz-blitz/5184.md?page=4)

[Next page](https://internals.rust-lang.org/t/rust-libz-blitz/5184.md?page=6)
