• Stars
    star
    345
  • Rank 118,214 (Top 3 %)
  • Language
  • License
    MIT License
  • Created over 5 years ago
  • Updated almost 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Neutralinojs vs Electron vs Nw.js

πŸ”” Important

Please notice that the following comparison data may not match with the latest releases of Neutralinojs, NW.js, and Electron. This benchmark was done in 2018. Please check https://github.com/Elanis/web-to-desktop-framework-comparison for a better benchmark and comparison.

Why Neutralinojs is better for lightweight apps? β€” proof

Neutralinojs framework was evaluated in comparison with Electron and NW.js considering disk consumption, memory consumption, easiness of development workflow and portability.

Sample applications

Simple Hello World type application is used in each framework on Linux and Windows for the evaluation.

Figure 1: Sample cross-platform apps written using Electron, NW.js and Neutralino respectively on Linux.

Figure 2: Sample cross-platform apps written using Electron, NW.js and Neutralino respectively on Windows.

OS details

  • Ubuntu 18.04.1 LTS
  • Windows 10 Enterprise

1. Disk Consumption

Node Webkit

Linux

Zipped SDK size                   95.8 MB
Project Size                      1 KB
Application bundle                97.2 MB
Application bundle (zipped)       36.9 MB
File count of project             5         

Windows

Zipped SDK size                   72.7 MB
Project size                      2 KB
Application bundle                78.1 MB
Application bundle (zipped)       32.3 MB
File count of project             5

Electron

Linux

Build package                     51.53 MB
node_modules count                147 
File count of project             1539
Project size                      136.4 MB
Application bundle                128.6 MB
Application bundle (zipped)       51.5 MB

Windows

Build package                     53.16 MB
node_modules count                180 
File count of project             1368
Project size                      125 MB
Application bundle                118 MB
Application bundle (zipped)       50.4 MB

Neutralinojs

Linux

Portable SDK size                 5.8 MB
Portable SDK size (zipped)        1.1 MB
File count                        11

Windows

Portable SDK size                 5.53 MB
Portable SDK size (zipped)        1.01 MB
File count                        11

SDK and application bundle are similar things in Neutralino. We will be introducing an application builder CLI soon!. Alternatively project can be zipped as the application bundle. Special case is that a single application bundle will work on both platforms unlike other frameworks do.

See proof directory for sample sources and binary releases.

2. Memory consumption

NW.js

Linux                           ~ 40 - 42 MB
Windows                         ~ 40 - 45 MB

Electron

Linux                           ~ 62 - 65 MB
Windows                         ~ 45 - 50 MB

Neutralinojs

Linux                           ~ 8 - 9 MB
Windows                         ~ 6 - 7 MB  

3. Easiness of Development Workflow

Electron

NW.js

Neutralino

Note - neu-cli offers an automated development workflow

Neutralino Debugging

Neutralino app is served via a socket. Therefore debugging can be done using a web browser.

Figure 3: Debugging a Neutralino based app using Google Chrome.

4. Performance

Neutralino's performance basically depends on the performance of C++ server implementation. Here is the result for Neutralino.os.runCommand for ls command for 100 samples. It took average 6 miliseconds to respond ls bash command.

Label # Samples Average Median 90% Line 95% Line 99% Line Min Max Error % Throughput Received KB/sec Sent KB/sec
HTTP Request 100 6 6 8 9 11 4 13 0.000% 87.87346 12.36 22.05
TOTAL 100 6 6 8 9 11 4 13 0.000% 87.87346 12.36 22.05

Result was captured by Apache JMeter using this test plan. See more details about this report here.

5. Conclusion

According to the results of this expertiment Neutralino can be used as a lightweight alternative for Electron and NW.js. Furthermore another experiment needs to be done by using somewhat large cross platform application such as draw.io. There are some drawbacks such as Windows edition is based on IE etc.

6. Contribution

Refer guidelines here

More Repositories

1

neutralinojs

Portable and lightweight cross-platform desktop application development framework
C++
7,202
star
2

neutralinojs.github.io

The official website and documentation of Neutralinojs
JavaScript
242
star
3

neutralino.js

JavaScript API for Neutralinojs
TypeScript
203
star
4

neutralinojs-cli

neu cli for Neutralinojs
JavaScript
88
star
5

gsoc2024

Google Summer of Code 2024 ideas - Neutralinojs
67
star
6

roadmap

The roadmap of Neutralinojs
59
star
7

neutralinojs-minimal

The simplest template for a Neutralinojs app
JavaScript
48
star
8

neutralinojs-desktop-samples

Collection of desktop apps built with NeutralinoJs
HTML
41
star
9

neutralinojs-cli-appify

Convert any SPA to a lightweight desktop app - Appify plugin for neu-cli
Python
23
star
10

neutralinojs-react

React starter project for Neutralinojs
JavaScript
20
star
11

neutralinojs-typescript

Typescript starter project for Neutralinojs
CSS
16
star
12

neutralinojs-vuejs-template

Vuejs template for Neutralinojs
JavaScript
13
star
13

neutralinojs-reactjs-template

Reactjs template for Neutralinojs
JavaScript
9
star
14

neutralinojs-svelte

Svelte starter project for Neutralinojs
JavaScript
8
star
15

neutralinojs-zero

An empty Neutralinojs app, extend as you wish
HTML
7
star
16

neutralinojs-javascript

Javascript starter project for Neutralinojs
CSS
5
star
17

v2-specification

Design documentation for v2
5
star
18

asar-unpackfile

Unpack a specific file to memory from an asar archive
C++
4
star
19

design-guide

Neutralinojs design resources for promotions and referencing
2
star
20

neutralinojs-kotlin

Kotlin starter project for Neutralinojs
Kotlin
2
star
21

neutralinojs-angularjs-template

Angularjs template for Neutralinojs
HTML
2
star
22

v2-client-specification

v3 Spec for Neutralinojs API
1
star