Commit Graph
48 Commits
Author SHA1 Message Date
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
LongYinan 2b8b617be0 feat(argon2): switch backend to argon2-rust (#1188)
* feat(argon2): switch backend to argon2-rust

Replace RustCrypto argon2 with argon2-rust 1.0.0 from crates.io.
Keep the public JS API. Verify accepts node-argon2 PHC param order
and associatedData. The bench pins the same raw params, salt, and
tag across implementations.

* fix(argon2): keep Node 22 tests and bound verify threads

Skip the node:crypto.argon2Sync comparison on runtimes that lack it.
Cap worker threads at available parallelism so a PHC p= value cannot
spawn one OS thread per lane. Allocate tag buffers with try_reserve
instead of vec! so a huge outputLen is a JS error, not a process abort.

* fix(argon2): skip node-argon2 interop when its native addon is missing

node-argon2 0.45 has no darwin-x64 prebuild. Intel macOS CI runs x64
Node on an ARM host, so a static import crashed the whole spec file.

* test(argon2): compare against node:crypto argon2

Drop the node-argon2 native addon from tests. Interop uses the
builtin KDF, which is available on every CI host that has it.
2026-08-13 11:01:01 +08:00
renovate[bot]andLongYinan 05156db802 chore(deps): update rust crate jsonwebtoken to v11 (#1177)
* chore(deps): update rust crate jsonwebtoken to v11

* fix(jsonwebtoken): handle non-exhaustive Algorithm in v11

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: LongYinan <lynweklm@gmail.com>
2026-08-13 00:23:31 +08:00
renovate[bot] f94ebe901b chore(deps): update rust crate base64 to 0.23 (#1176)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-23 18:41:54 +00:00
renovate[bot] 6755acf779 chore(deps): update rust crate jieba-rs to 0.10 (#1140)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-22 09:30:52 +00:00
renovate[bot] 9252fd481d chore(deps): update rust crate jieba-rs to 0.9 (#1114)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-13 01:47:39 +00:00
renovate[bot] f32a3e9594 chore(deps): update rust crate blowfish to 0.10 (#1112)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-10 17:45:42 +00:00
renovate[bot] 2339940c42 chore(deps): update rust crate argon2 to v0.6.0-rc.8 (#1098)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-22 05:45:37 +00:00
renovate[bot] cc8658b586 chore(deps): update rust crate bcrypt to 0.19 (#1088)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-03 10:12:09 +00:00
renovate[bot] e41883f64e chore(deps): update rust crate rand to 0.10 (#1073)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-08 18:04:56 +00:00
renovate[bot] 23ea4f8cf9 chore(deps): update rust crate argon2 to v0.6.0-rc.7 (#1072)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-03 02:46:06 +00:00
LongYinan 9764f3cf63 fix(deps): update rand_core (#1069) 2026-02-02 11:04:11 +08:00
renovate[bot] 2386a451f1 fix(deps): update rust crate rand_core to 0.10 (#1067)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-01 15:09:50 +00:00
renovate[bot] bddeab6d2f chore(deps): update rust crate argon2 to v0.6.0-rc.6 (#1060)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-21 18:34:15 +00:00
renovate[bot] c72d009069 chore(deps): update rust crate bcrypt to 0.18 (#1050)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-12 06:18:13 +00:00
d85d35a23e fix(deps): upgrade napi-rs/cli and fix build errors (#1048)
---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: LongYinan <lynweklm@gmail.com>
2026-01-12 14:01:13 +08:00
renovate[bot] aa5ce0c20c chore(deps): update rust crate jieba-rs to 0.8 (#1034)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-16 04:28:05 +00:00
renovate[bot] 8d41794c88 chore(deps): update rust crate bcrypt to 0.17 (#967)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-30 10:08:00 +00:00
renovate[bot] 3029a99f12 fix(deps): update rust crate rand_core to 0.9 (#963)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-27 21:30:46 +00:00
renovate[bot] 07cbdc0dfa chore(deps): update rust crate rand to 0.9 (#961)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-27 18:23:29 +00:00
renovate[bot] e97f7a7c28 chore(deps): update rust crate bcrypt to 0.16 (#929)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-18 15:59:45 +00:00
LongYinan ef96dda6e4 chore: refresh the infra (#915) 2024-10-27 15:04:00 +08:00
Linus UnnebäckandLongYinan 50be77d07d bench(bcrypt): add @cwasm/openbsd-bcrypt and @cwasm/openwall-bcrypt to benchmark (#649)
* Add @cwasm/openbsd-bcrypt and @cwasm/openwall-bcrypt to benchmark

* tinybench

---------

Co-authored-by: LongYinan <lynweklm@gmail.com>
2024-10-27 00:18:23 +08:00
LongYinan afd2a544b8 feat!(jieba): upgrade to jieba@0.7 (#912)
Also provide customizable API for Jieba and TfIdf
2024-10-26 23:25:58 +08:00
renovate[bot] 09acc08567 chore(deps): update rust crate napi-derive to 3.0.0-alpha (#905)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-14 01:33:40 +00:00
renovate[bot] fb1a6fa096 chore(deps): update rust crate napi to 3.0.0-alpha (#904)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-13 22:52:56 +00:00
LongYinan f66abff2c5 feat(*): upgrade to NAPI-RS 3.0 alpha (#897) 2024-10-03 17:51:06 +02:00
LongYinan 8b58703433 chore: deprecate deno-lint (#852) 2024-07-04 12:02:01 +08:00
LongYinan 4fb4bcc504 chore(*): upgrade NAPI-RS and bindings (#825) 2024-04-19 17:51:38 +08:00
LongYinan 2337ec38ce chore: upgrade dependencies 2023-07-20 10:05:43 +08:00
LongYinan a0ef7deb79 feat(*): upgrade dependencies 2023-04-24 08:47:02 +08:00
nebarf 70ceb14a0b feat(jsonwebtoken): jsonwebtoken implementation 2023-02-26 15:13:54 +01:00
LongYinan 8ae3d85dd5 perf(crc32): enable sse4.2 for x86 platform 2023-01-11 20:06:25 +08:00
LongYinan 58962a11cb chore: upgrade dependencies 2022-05-29 22:05:00 +08:00
LongYinan 9f953e0853 chore: upgrade napi to crates version (#633) 2022-05-07 21:00:30 +08:00
LongYinan 792f69d7ac fix(*): Node.js worker_threads safe by upgrade NAPI-RS version (#623) 2022-05-07 15:40:05 +08:00
LongYinan 6adc51dd43 feat(argon2): implement argon2 2021-12-29 21:17:35 +08:00
LongYinan 5ea38c3bfd feat(xxhash): init xxhash32 and xxhash64 2021-10-21 23:26:06 +08:00
LongYinan 0b2254ee11 chore: switch to nightly toochain, strip symbols (#463) 2021-07-18 23:53:02 +08:00
LongYinan 309fe82582 chore: upgrade dependencies 2021-03-02 15:19:32 +08:00
LongYinan 1f1a7902bb chore: upgrade all deps 2021-01-14 11:46:56 +08:00
LongYinan 0fa588eddb feat: upgrade to napi@1 2020-12-03 00:00:34 +08:00
LongYinan 025abfb754 feat: start deno lint 2020-08-19 00:05:13 +08:00
LongYinan 0e315051e2 feat: support linux musl 2020-06-12 02:23:30 +08:00
LongYinan 666f122275 feat(bcrypt): fastest bcrypt 2020-05-15 17:43:27 +08:00
LongYinan 9676a439ca feat(jieba): impl jieba-rs binding 2020-05-02 12:35:21 +08:00
LongYinan dfba81fbee feat(crc32): init 2020-04-20 00:39:43 +08:00
LongYinan 626fdf45ce Init 2020-03-18 00:10:21 +08:00