-
Notifications
You must be signed in to change notification settings - Fork 29.8k
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
deps: start working on ncrypto dep #53803
Conversation
Review requested:
|
Is this specifically for workerd or have other runtimes expressed interest in this?
What about versioning of such a dependency? If multiple other runtimes depend on this library, wouldn't they expect API/ABI stability that we currently do not provide for such internal bindings? Regarding contributions, would future pull requests then target |
That's the immediate target for me, yes, but I wouldn't say it is only for that. FWIW, I'm also hoping that by separating this out we can more easily deal with various openssl updates, differences with boringssl in environments that use that, and provide some isolate to work on performance and functionality improvements.
I think we address that problem if/when it becomes a problem. For workerd we really wouldn't need to expect strict API/ABI stability as we would be able to track any updates accordingly.
Yes. Future PRs that specifically touch the underlying c++ code would happen there. The |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you add version and add it to node metadata just like nbytes?
|
This comment was marked as outdated.
This comment was marked as outdated.
We (Bun) are interested! |
Awesome. Yeah, I figured y'all might be. Re-implementing this stuff so that it works consistently with node.js and tracks changes is a ton of work. Separating out the key bits that do not directly depend on v8 will make life a whole lot easier and will make it easier to be actually compatible with node.js |
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
I think it's worth pointing out that this might reduce visibility in this subsystem's development/maintenance. Example being nodejs/undici contributions and releases that occasionaly include breaking behaviours in a core API. |
This comment was marked as outdated.
This comment was marked as outdated.
Noted and agreed that is a risk. I think the benefits for cross-runtime compatibility and preventing divergence across implementations are benefits that outweigh the risk. |
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
Start moving src/crypto functionality out to a separate dep that can be shared with other projects that need to emulate Node.js crypto behavior.
Start moving src/crypto functionality out to a separate dep that can be shared with other projects that need to emulate Node.js crypto behavior. PR-URL: #53803 Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Landed in efe5b81 |
Start moving src/crypto functionality out to a separate dep that can be shared with other projects that need to emulate Node.js crypto behavior. PR-URL: nodejs#53803 Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Start moving src/crypto functionality out to a separate dep that can be shared with other projects that need to emulate Node.js crypto behavior. PR-URL: #53803 Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
The idea here is to start moving the bulk of the implementation of
src/crypto/*.h
andsrc/crypto.c++
into a separate dependency that can be used by other runtimes that are seeking to emulate Node.js' behaviors.Implementing this will be incremental since there is a lot of code to migrate. Accordingly, while the idea is to eventually move
ncrypto
into its ownnodejs/ncrypto
repo, it will remain only in deps until most of the functionality that will be moved to it is moved. Doing so will make it much easier to review individual changes that move function out to the dep.