Sandpack/nodebox-runtime

Is this file not available as open source ?

damodharanj opened this issue ยท 12 comments

Screenshot 2023-02-18 at 10 30 24 PM

Noticed that the preview iframe loads this URL. Is this the build of nodejs runtime for browser ?
Is this part of opensource ?

Asking this because it doesn't work without internet. Would like to use nodebox in a on-premise basis where is no access to external internet.

You're correct that file is not open-source, quoting from our FAQ:

While unfortunately we are not open-sourcing Nodebox for a variety of reasons, some of which are outside of our control, we believe this technology may be the future of improved DX. So, we will continue to explore whether we can open-source it in the future.

For self hosting we can help out, you can send an email to us at sales@codesandbox.io https://sandpack.codesandbox.io/docs/resources/faq#what-license-do-sandpack-and-nodebox-use

Asking this because it doesn't work without internet. Would like to use nodebox in a on-premise basis where is no access to external internet.

You can use an extension with Native Messaging to achieve that requirement. This https://github.com/guest271314/native-messaging-nodejs is FOSS, licensed under DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE.

@DeMoorJasper

What are you confused about?

Node.js is open source.

I don't see why the idea of this project is to attempt to duplicate a Node.js environment where the user already has Node.js or just the node executable already on their machine - and to have have closed-source code as an implementation detail.

As evinced by this issue users are interested in FOSS code, not closed-source code where licensing is a concern.

Therefore I provided a link for OP where they can run Node.js from their own browser without licensing issues and where the source code is FOSS.

There shouldn't be any confusion for the end-user just to run Node.js.

@guest271314

Just seemed a bit strange that you're promoting your own project on here.

The open source decision is not one we took lightly and as the faq states, some of the reasons it is closed source are out of our control.

for a variety of reasons, some of which are outside of our control

Just seemed a bit strange that you're promoting your own project on here.

I'm not promoting anything. I simply provided OP with an option to run Node.js from the browser - without closed-source or licensing concerns. That shouldn't be an issue for you.

FYI I learned about your project via GitHub's "For you" feed.

for a variety of reasons, some of which are outside of our control

I don't understand that. Node.js is Free Open Source Software.

I'm not knocking you folks for trying to sale something. However, in fairness, users in the field should be aware of free alternative unencumbered by closed-source licenses. We already went through that when Microsoft shipped IE with its operating system.

At the technical level, DRY is in play. Why should developers in the field use nodebox-runtime when they can simply use a Web extension and Native Messaging to run Node.js controlled from the browser?

Code and concepts whether closed-source or open-source is not beyond scrutiny.

@DeMoorJasper Some additional context: Recently StackBlitz recently announced WebContainers, claiming to be capable of running Node.js in the browser. When I asked them about that and whether or not the source code was closed-source, they said the code was not open-source and only ran on StackBlitz stackblitz/webcontainer-core#658. Some recent announcements claim the WbContainer API is now available. However, we already have Native Messaging browserext/native-messaging#6, so nothing new or novel is actually being advertised that I can observe and point to that is not already possible using a browser extension and Native Messaging - without creating an entire duplicate of Node.js environment or installing third-party software (IDE's) just to run Node.js, Deno, C, C++, Python, WASI-WebAssembly, etc. from the browser without an IDE or other third-party software potentially encoumbered by licenses and itself being closed-source. Users in the field should be aware of alternative solutions to private products to make informed decisions.

I was wondering how they managed to compile V8 to WebAssembly. Because When I run node just it uses at least 40MB to run. QuickJS (qjs is ~5MB compiled, less than 1MB after strip qjs) has been compiled to WebAssembly (https://github.com/justjake/quickjs-emscripten; https://github.com/second-state/wasmedge-quickjs) and runs in the browser https://bellard.org/jslinux/vm.html?url=alpine-x86.cfg. I am not aware of any one who has compiled node executable to WebAssembly or WASI/WebAssembly combination that runs entirely in the browser. Thus my initial interest in your project.

Now when it comes to the implementation details your reply is

for a variety of reasons, some of which are outside of our control

What are those reasons?

You're correct that file is not open-source, quoting from our FAQ:

While unfortunately we are not open-sourcing Nodebox for a variety of reasons, some of which are outside of our control, we believe this technology may be the future of improved DX. So, we will continue to explore whether we can open-source it in the future.

For self hosting we can help out, you can send an email to us at sales@codesandbox.io https://sandpack.codesandbox.io/docs/resources/faq#what-license-do-sandpack-and-nodebox-use

Thanks for clarification @DeMoorJasper!
I was genuinely confused because of the name of the repository & the documentation in the website & repo. Would highly recommend you to change the name to nodebox-runtime-api or something of similar sorts. Will contact you regarding the on-premise installation

Thanks for the feedback, I changed the description of the repo, unfortunately changing the name would probably break some links so can't do that for now.

What are those reasons?

Unfortunately we are also not allowed to disclose those reasons, but please understand that we are deeply frustrated by the fact that we cannot open source right now. Generally it's a frustrating situation to be in, both for us and others, because we cannot disclose why. We are exploring whether we can still open source this in the future, though. And if that happens, we can post an update here.

@CompuIves That's insane. Must be wrapped up in NDA;s or something. Far simpler to just use Node.js with Native Messaging.

Goof luck!

Can this project be used commercially?