Electron

As we know Electron.js is built of Chromium and Node.js. Where Chromium is a full scale Web browser that even uses its own, independent JavaScript engine.

Therefore each Electron.js application is essentially a separate Web browser and Web server installed on your machine – as many Electron applications you are running – as many browsers and servers you have in your RAM. Yet each Electron application runs at least three separate processes on your machine.

But what if to replace Chromium in Electron by Sciter?

To answer this I’ve created very basic Sciter as NodeJs native module.

In order to get some stats I’ve compared Microsoft Visual Code, as typical Electron.Js application, with the “IDE” sample from Sciter’s SDK that has similar UI structure:

sciter.node – Sciter IDE demo

Here are some numbers for you to consider:

Sciter+Node Electron Distribution size (zip) 12mb 60mb 5 times smaller Size on disk 15mb 90mb 6 times smaller RAM consumption 50mb 318mb 6 times less N of processes 1 8 8 times less Startup time 34ms 670ms 12 times less

I think the numbers are at least motivating.

Ideal Sciter / Node integration model

Sciter is made of the following modules: HTML, CSS, Graphics, Script compiler and VM, libUV and script runtime.

And NodeJs is essentially V8 script engine, libUV plus script runtime.

So ideally sciter.node is just HTML, CSS, Graphics modules of Sciter compiled into NodeJs statically – it will use JavaScript instead of Sciter’s Script and common libUV. But that will be not Sciter nor NodeJs but something else at the end.