Files
node-rs/Cargo.toml
T
LongYinan b0ea4a01b8 perf(argon2): simdutf8, crate PHC decode, argon2-rust 1.1 (#1189)
* perf(argon2): validate UTF-8 with simdutf8 before owning the string

Check the JS byte slice with simdutf8, then build String via
from_utf8_unchecked so from_utf8 does not walk the bytes again.

* perf(argon2): decode PHC Base64 with a LUT instead of the engine

Salt and tag fields are tens of bytes. A 256-entry table plus leftover-bit
checks beats the generic base64 crate, and on aarch64 argon2-rust's SIMD
would not even run for a 16-byte salt.

* perf(argon2): decode PHC fields with argon2-rust SIMD Base64

Use the new encode_base64/decode_base64 entry points. decode_phc still
owns param order and data=. Temporarily depends on the local
argon2-rust tree until 1.1.0 is on crates.io.

* feat(argon2): consume argon2-rust 1.1 PHC APIs

Drop the local PHC parser, encoder, and compare. Hash and verify go
through hash_encoded_with_ad, decode_phc, and verify_with_ad.
Require argon2-rust 1.1 from crates.io; the sibling path dep is gone.
2026-08-13 16:30:24 +08:00

41 lines
1.2 KiB
TOML

[workspace]
members = [
"./crates/alloc",
"./packages/argon2",
"./packages/bcrypt",
"./packages/crc32",
"./packages/jieba",
"./packages/jsonwebtoken",
"./packages/xxhash",
]
resolver = "2"
[workspace.dependencies]
argon2-rust = { version = "1.1", default-features = false }
base64 = { version = "0.23" }
bcrypt = "0.19"
blowfish = { version = "0.10", features = ["bcrypt"] }
crc32c = { version = "0.6" }
crc32fast = { version = "1.4", features = ["nightly"] }
global_alloc = { path = "./crates/alloc" }
indexmap = { version = "2", features = ["serde"] }
jieba-rs = { version = "0.10", default-features = false, features = ["tfidf", "textrank"] }
jsonwebtoken = { version = "11", features = ["rust_crypto"] }
mimalloc-safe = "0.1"
napi = { version = "3", default-features = false, features = ["napi3"] }
napi-build = "2"
napi-derive = { version = "3", default-features = false, features = ["type-def"] }
once_cell = "1"
quickcheck = "1.0"
rand = "0.10"
rand_core = { version = "0.10" }
serde = "1.0"
serde_json = "1.0"
simdutf8 = "0.1"
xxhash-rust = { version = "0.8", features = ["xxh32", "const_xxh32", "xxh64", "const_xxh64", "xxh3", "const_xxh3"] }
[profile.release]
codegen-units = 1
lto = true
overflow-checks = false
strip = 'symbols'