Skip to content

1.0 releases #238

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
tarcieri opened this issue Jul 29, 2020 · 9 comments
Open

1.0 releases #238

tarcieri opened this issue Jul 29, 2020 · 9 comments
Labels
aead Authenticated Encryption with Associated Data (AEAD) crate cipher Block and stream cipher crate crypto-mac Message Authentication Code (MAC) crate digest Hash function crate elliptic-curve enhancement help wanted signature Digital signature crate univeral-hash Universal Hash Function (UHF) crate

Comments

@tarcieri
Copy link
Member

This is a tracking ticket for 1.0 releases of all of the crates in this repository, except for signature which is already 1.0 (see #237).

The main blocker for 1.0 releases of crates in this repository has been a desire to stabilize them after Rust ships stable const generics. There is now hope this may happen soon enough to warrant putting together a 1.0 stabilization plan:

https://without.boats/blog/shipping-const-generics/

That said, many of the crates maintained by this org have relatively fancy usages of type-level arithmetic using GenericArray which probably won't be available on stable Rust for a much longer period of time.

My best guess is we'll be trying to ship 1.0 versions some time in 2021. In the meantime, this is a place to track upstream Rust progress and make a plan for both replacing existing usage of GenericArray with const generics as well as shipping 1.0 versions of these crates which use a const generic API.

@tarcieri tarcieri added aead Authenticated Encryption with Associated Data (AEAD) crate cipher Block and stream cipher crate enhancement help wanted signature Digital signature crate stream-cipher digest Hash function crate elliptic-curve crypto-mac Message Authentication Code (MAC) crate univeral-hash Universal Hash Function (UHF) crate labels Jul 29, 2020
@newpavlov
Copy link
Member

Note that const generics MVP is not sufficient, even if we forget about the fancy type-level arithmetic used in some crates. It even mentioned in the blog post:

This will mean, for example, that use cases like cryptographic hash traits which allow each implementation to specify a different length for the hash they output will still be out of scope for the MVP. This is a shame, but this feature will come eventually.

IIUC the main blocker here is rust-lang/rust#68436.

Also ideally I would like to release 0.* versions dependent on const generics first and release 1.0 only if no big changes will be needed in half to one year. Another Rust feature which I hope to see implemented before 1.0 releases is rust-lang/rust#65262.

@burdges
Copy link

burdges commented Feb 1, 2021

I agree 1.0 should be blocked on const generics. Appears progress is being made. :)

@malobre
Copy link

malobre commented Mar 25, 2021

Rust 1.51 stabilized min_const_generics 🎉🎉🎉

@tarcieri
Copy link
Member Author

tarcieri commented Mar 25, 2021

Indeed, and it's exciting! Unfortunately min_const_generics aren't quite powerful enough for our use cases.

Namely we need the ability to use an associated constant of a trait as a const generic parameter. Pretty much every single one of our usages depends on this (i.e. we define sizes using typenum as associated types of a trait, and use those sizes as a parameter for GenericArray).

Here's an experiment I did on the 1.51 beta release which demonstrates the limitation:

RustCrypto/utils#325 (comment)

The error message there suggests that both const_generics and const_evaluatable_checked will need to be stabilized before that's possible.

@burdges
Copy link

burdges commented Mar 25, 2021

Are there any tools that "assign blame" to dependencies for their compiler resoruce usage?

@malobre
Copy link

malobre commented Mar 25, 2021

Are there any tools that "assign blame" to dependencies for their compiler resoruce usage?

Take a look at cargo-bloat and the --time flag.

@Erik1000

This comment was marked as off-topic.

@tarcieri
Copy link
Member Author

@Erik1000 please open a separate issue for that

@Erik1000
Copy link

Done in #1016. Feel free to hide this comment

dns2utf8 pushed a commit to dns2utf8/traits that referenced this issue Jan 24, 2023
Bumps [password-hash](https://github.com/RustCrypto/traits) from 0.3.0 to 0.3.1.
- [Release notes](https://github.com/RustCrypto/traits/releases)
- [Commits](RustCrypto/traits@password-hash-v0.3.0...password-hash-v0.3.1)

---
updated-dependencies:
- dependency-name: password-hash
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
aead Authenticated Encryption with Associated Data (AEAD) crate cipher Block and stream cipher crate crypto-mac Message Authentication Code (MAC) crate digest Hash function crate elliptic-curve enhancement help wanted signature Digital signature crate univeral-hash Universal Hash Function (UHF) crate
Projects
None yet
Development

No branches or pull requests

5 participants