Search code examples
electronchromiumnode-webkitneutralinojs

What exactly does "Neutralinojs" do to be so much smaller than Electron and NW.js?


A while ago, somebody told me about this thing while I was complaining about my little NW.js applications containing hundreds of megabytes of overhead: https://neutralino.js.org

I have no affiliation with it.

It has a comparison table which is impressive to say the least: https://github.com/Elanis/web-to-desktop-framework-comparison

In its example, NW.js takes 334 MB and Neutralino 2 MB. That is so extreme of a difference that there pretty much has to be some "catch" about this...

I've tried to read and understand the website, but I don't get how it can keep the size down to this degree. And if it can, why can't NW.js and Electron also do the same thing, seeing as both are also using Chromium?

I've been unable to find anyone interested in explaining this, but if it's true, you'd think this would be much bigger than the others rather than so obscure? I bet there is some major downside.


Solution

  • Neutralino is basically just a simple local web server with a very limited API to hit from a browser that will run specific "desktop app like" commands on your behalf.

    NW.js allows you to package your application with protected (native binary) source code (closed source). It also has a ton of options around manipulating the window itself (including Kiosk mode, frameless window, transparent window, hidden window, tray apps, etc). NW.js allows full access to the entire Node API and any Node Module directly from the DOM. Neutralino in comparison is extremely limited and can't create the same diversity of applications.

    If the problem space your application is in fits within the limited scope of what Neutralino handles, it could be a good fit. Most apps don't fit in that space neatly however.

    For more comparison of Cross-Platform Desktop App (XPDA) tools: