Password provider: Rust crate for argon2id hashes - #362
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Member
Author
This stack of pull requests is managed by Graphite. Learn more about stacking. |
Nicolapps
force-pushed
the
nicolas/password-provider-rust-crate
branch
from
July 2, 2026 01:31
35b9556 to
4ec446d
Compare
Nicolapps
force-pushed
the
nicolas/password-provider-rust-crate
branch
from
July 2, 2026 01:32
4ec446d to
4ec2f44
Compare
commit: |
Nicolapps
force-pushed
the
nicolas/password-provider-rust-crate
branch
from
July 2, 2026 01:38
4ec2f44 to
96329b6
Compare
Nicolapps
force-pushed
the
nicolas/password-provider-rust-crate
branch
from
July 2, 2026 01:53
96329b6 to
24e7fc7
Compare
Nicolapps
force-pushed
the
nicolas/password-provider-rust-crate
branch
from
July 2, 2026 01:56
24e7fc7 to
d26cc8d
Compare
Nicolapps
force-pushed
the
nicolas/password-provider-rust-crate
branch
from
July 2, 2026 02:33
d26cc8d to
fe672d4
Compare
Nicolapps
force-pushed
the
nicolas/password-provider-rust-crate
branch
from
July 2, 2026 02:43
fe672d4 to
378a7e5
Compare
Nicolapps
commented
Jul 2, 2026
| @@ -0,0 +1,4 @@ | |||
| [toolchain] | |||
| channel = "1.87.0" | |||
| targets = ["wasm32-unknown-unknown"] | |||
Member
Author
There was a problem hiding this comment.
Using wasm32-unknown-unknown because:
- we don't need 64 bit memory
- wasm32-unknown-unknown is a Tier 2 without Host Tools platform (wasm64-unknown-unknown is tier 3)
- this crate doesn’t need any assumptions about the host environment, so it’s fine to use unknown-unknown
Nicolapps
force-pushed
the
nicolas/password-provider-rust-crate
branch
from
July 2, 2026 03:11
378a7e5 to
52bb8f1
Compare
Nicolapps
force-pushed
the
nicolas/password-provider-rust-crate
branch
from
July 2, 2026 03:13
52bb8f1 to
a6da603
Compare
Nicolapps
force-pushed
the
nicolas/password-provider-rust-crate
branch
from
July 2, 2026 03:46
a6da603 to
f10d19b
Compare
Nicolapps
force-pushed
the
nicolas/password-provider-rust-crate
branch
from
July 2, 2026 07:52
5d531bd to
9f6697b
Compare
Nicolapps
marked this pull request as ready for review
July 2, 2026 07:55
Nicolapps
force-pushed
the
nicolas/password-provider-rust-crate
branch
from
July 2, 2026 20:20
9f6697b to
eaf2a69
Compare
Nicolapps
changed the base branch from
graphite-base/362
to
nicolas/fix-test-v2-ci
July 2, 2026 20:20
Merged
Nicolapps
force-pushed
the
nicolas/fix-test-v2-ci
branch
from
July 2, 2026 20:22
d91857c to
646ae43
Compare
Nicolapps
force-pushed
the
nicolas/password-provider-rust-crate
branch
from
July 2, 2026 20:22
eaf2a69 to
3f90273
Compare
Nicolapps
changed the base branch from
nicolas/fix-test-v2-ci
to
graphite-base/362
July 2, 2026 20:24
Nicolapps
force-pushed
the
nicolas/password-provider-rust-crate
branch
from
July 2, 2026 20:50
3f90273 to
7a26e76
Compare
Nicolapps
force-pushed
the
graphite-base/362
branch
from
July 2, 2026 20:50
646ae43 to
d336421
Compare
Nicolapps
changed the base branch from
graphite-base/362
to
nicolas/fix-test-v2-ci
July 2, 2026 20:50
Nicolapps
changed the base branch from
nicolas/fix-test-v2-ci
to
graphite-base/362
July 2, 2026 20:54
Nicolapps
force-pushed
the
graphite-base/362
branch
from
July 2, 2026 20:54
d336421 to
cf62164
Compare
Nicolapps
force-pushed
the
nicolas/password-provider-rust-crate
branch
from
July 2, 2026 20:54
7a26e76 to
7999de5
Compare
Nicolapps
force-pushed
the
nicolas/password-provider-rust-crate
branch
2 times, most recently
from
July 2, 2026 20:56
e045b77 to
7999de5
Compare
Nicolapps
added a commit
that referenced
this pull request
Jul 7, 2026
This was referenced Jul 8, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

This PR is the first part of the password component described at https://app.notion.com/p/convex-dev/Convex-Auth-v2-Passwords-38ab57ff32ab80a4b395f94378ebb958?source=copy_link. As described in the design doc, we’re going to implement Argon2id hashing using a small WebAssembly module we’re going to embed in the component. This PR adds this module, while the actual component itself will be implemented in subsequent PRs.
This module is a thin wrapper around the
argon2Rust crate. It’s maintained by the RustCrypto organization and considered a “blessed” crate. The Rust code is compiled to a WebAssembly file (66 KiB1).Footnotes
The Wasm esbuild bundler in the Convex CLI encodes the contents of the Wasm file as base64, so the size of the actual module is slightly larger. If we wanted to reduce the module size, we could modify the push process to accept binary WASM files. I think the module size is fine for now, because this will only be loaded when the password component functions run, which is a small fraction of a real app workload. ↩