Skip to content

v1: replace native addon with Node.js crypto#540

Open
ranisalt wants to merge 1 commit into
masterfrom
next
Open

v1: replace native addon with Node.js crypto#540
ranisalt wants to merge 1 commit into
masterfrom
next

Conversation

@ranisalt

Copy link
Copy Markdown
Owner

Removes all native bindings and prebuilt binary infrastructure, transitioning the package to use the native Argon2 implementation now available in node:crypto starting with Node.js 24.7.0. This simplifies the codebase and CI/CD workflows.

  • BREAKING: Core implementation now delegates to node:crypto's Argon2, removing native bindings and related dependencies (bindings.gyp, .gitmodules + argon2 submodule, .clang-format, etc)
  • Remove all jobs related to building and testing native binaries

The package is now a thin wrapper around Node.js native Argon2 implementation, requiring Node.js 24.7.0 or newer. All legacy native code, build scripts, and related CI/CD complexity have been removed. It will continue working with prebuilt binaries in v0 at least until Node 22 is EOL, as explained in #469

@ranisalt ranisalt linked an issue Jul 17, 2026 that may be closed by this pull request
@sonarqubecloud

This comment was marked as low quality.

@ranisalt

Copy link
Copy Markdown
Owner Author

v1.0.0-alpha.1 has been released in NPM with the code from this branch

- Bump package version from 0.45.0 to 1.0.0 in package.json
- Rewrite the main module in ESM
- Remove unnecessary binary and files entries in package.json
@ranisalt

Copy link
Copy Markdown
Owner Author

I consider relicensing to CC0 with this release. Argon2 is frozen, Node interface is unlikely to change significantly, and the library is thin enough that I don't expect big changes other than bumping dependencies, so it would benefit from a public domain license.

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

Successfully merging this pull request may close these issues.

Offer a minimal wrapper option (no native libraries) now?

1 participant