-
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
Discussion: How should the Node executable + Node shared library be distributed? #24028
Comments
@nodejs/releasers might have opinions/insights? |
Personally I like this discussion, and I'm happy it pops up from time to time in various forms (#14158, #23202, #9652, #17604, #8118, nodejs/help#585).
We could also consider a hybrid solution, a single and complete binary that during bootstrap checks for an overriding /CC @nodejs/delivery-channels |
IMO this is up to folks distributing Node. So @kapouer for instance might do a |
@rvagg I think the thing you miss in the discussion is that unless we have a package which includes the shared library, that forces consumers to compile/build node. In addition to being something they may not want/need to do it likely makes getting support harder since they are not using a standard library provided by the community. If you look at Java as an example, there are lots of applications that load Java as a Shared library and they do so by using the library provided in the standard downloads. No need to pull and build from source. |
Java's a bit different though, it's historically been provided closed-source so linking to it has required a binary. Node has always been easy to compile and embedders are already including compiling Node as part of their tooling. Here's probably the most popular end-user application still using the JVM: There's no separate JVM (IIRC there used to be), it's entirely integrated and it takes care of what JVM it has and keeping it up to date). Show me an example of a popular, modern end-user application that embeds or uses a runtime that requires you to download the runtime separately. Users hate hoops, just let me install the one thing. Hence, my argument here is that we'd be opting for complexity on our end with very low likelihood of any benefit for anyone. IMO we'd be much better off focusing on |
There's been no further discussion in over a year. Closing |
One thing that came up in this issue was, if the default Node distributions were to ship with a shared build, how should it be structured?
Basically boils down to:
node
executable just be a small binary that links againstlibnode
ORnode
executable with no shared dependencies, and a separatelibnode
that users can link against?Discussion was pretty contentious and I think it is worth its own issue!
The text was updated successfully, but these errors were encountered: