Skip to content
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

Path to v1.0? #130

Open
benesch opened this issue Mar 30, 2020 · 8 comments
Open

Path to v1.0? #130

benesch opened this issue Mar 30, 2020 · 8 comments

Comments

@benesch
Copy link

benesch commented Mar 30, 2020

Hi @marshallpierce! First of all, thanks for making such a foundational piece of the Rust ecosystem!

I wanted to ask if you had a plan for releasing a v1.0. As of this issue there are 816 crates that depend on base64: https://crates.io/crates/base64/reverse_dependencies. Many of those crates are themselves foundational, and so base64 appears in the transitive dependency set many layers deep. That means that every minor release of base64 causes a pretty massive cascade of dependencies that need to be themselves released with the updated version.

I know releasing v1.0 places a backwards compatibility burden on you, but wondered if you had a timeline, or work items we could help out with!

@marshallpierce
Copy link
Owner

Good question. At this point, there are 2 things I would like to see before 1.0:

Both of these were explored in #91, but it was just too big and invasive for me to review in a timely fashion, so it got stale.

@Sytten
Copy link

Sytten commented Feb 2, 2022

Any progress?

@marshallpierce
Copy link
Owner

I've got PRs waiting for me on AVX2 and constant-time implementations (almost ready). Real life just needs to give me a break so I have time to give to them. :)

@bstrie
Copy link

bstrie commented May 4, 2022

Note that the RustCrypto project has their own constant-time base64 crate (https://crates.io/crates/base64ct), so if this crate were to gain constant-time support then perhaps they would be willing to deprecate their crate and instead lend a hand in the maintenance of this one.

@marshallpierce
Copy link
Owner

Yep, I hope we can find a way to offer everything RustCrypto needs.

I'm currently working on #182. After that, getting #170 and a constant time impl in seems like a good point to call 1.0.

@jjant
Copy link

jjant commented Nov 2, 2022

Hey @marshallpierce I was wondering if there's any news/help needed for #181/#182? Thank you!

@marshallpierce
Copy link
Owner

I managed to get about 90% of the way to an implementation in master...mp/invalid-padding, and then got too busy in real life again to finish it. I'll probably have time during the holiday season to get it over the line (which is basically fixing the last few tests and inspecting my design decisions with fresh eyes).

If you have time to help, probably the most accessible task for someone other than me to do relatively quickly would be to assess the API changes, docs, etc in there: are they sufficiently clear? Is it easy to pick the "right" one for hypothetical use cases?

@ia0
Copy link

ia0 commented Jan 2, 2024

FYI for those looking for a stable crate for base64, base32, hexadecimal, and other standard or custom data encodings: The data-encoding crate has been stable and correct since its first release 8 years ago (and v2 since 6 years).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants