Giter Club home page Giter Club logo

elanis / web-to-desktop-framework-comparison Goto Github PK

View Code? Open in Web Editor NEW
1.2K 21.0 40.0 128.09 MB

This repository has been made to create an objective comparison of multiple frameworks that allow us to "transform" our web apps to desktop applications.

License: MIT License

HTML 3.26% JavaScript 36.31% Rust 1.15% Dart 0.86% CMake 12.10% C++ 18.91% C 1.11% Swift 0.59% TypeScript 4.08% C# 6.33% Shell 1.23% Go 1.74% CSS 2.02% Vue 10.32%
electron electron-app electronjs nwjs nwjs-application tauri tauri-app neutralinojs nodegui flutter

web-to-desktop-framework-comparison's Introduction

Web to Desktop framework comparison

This repository was made to create an objective comparison of multiple framework that grant us to "transform" our web app to desktop application formats.

Table Of Content

Major characteristics

Electron NW.JS Tauri NodeGui Neutralino Wails Flutter .Net MAUI
Github stars 111.9k 40.1k 77.1k 8.7k 7.2k 22.1k 161.7k 21.5k
Forks 14.9k 3.9k 2.3k 0.3k 0.4k 1.1k 26.5k 1.6k
Creation date 2013 2011 2019 2019 2018 2019 2018 2020
Last Update 4/2024 4/2024 4/2024 3/2024 4/2024 4/2024 4/2024 4/2024
Framework Language C++, JS, Objective-C, Python C++ Rust C++ C++ Go C, C++, Dart C#
Usage Language - Back JS, C++ JS, C++ Rust JS, C++ JS, C++ Go Dart C#
Usage Language - Front HTML, CSS, JS HTML, CSS, JS HTML, CSS, JS HTML, CSS, JS HTML, CSS, JS HTML, CSS, JS Dart C#
License MIT MIT MIT MIT MIT MIT BSD 3-Clause MIT
Developer Dependencies Node.js, Electron NPM Package Node.js, NW.JS SDK C++ Compiler, Node.js, Rustc, Cargo Cmake, make, Node.js, NodeGUI NPM Package Node.js, Neu NPM Package Go 1.18+, Node 15+, Wails Flutter SDK, Visual Studio 2019 / Clang .Net SDK, Visual Studio (optional), WebView2 (optional), Xcode (optional)
User Dependencies None None None None None None None None
Dependencies / modules support npm & node.js native addons npm & node.js native addons cargo (back), npm (front) npm & node.js native addons Gomod (back), npm (front) pub.dev NuGet
Engine Chromium Webkit, Chromium WRY (WebKitGTK for Linux, WebKit for MacOS, Webview2 for Windows) Qt WebkitGTK+ WebKit2gtk on Linux, Webview2 on Windows and WkWebview on Mac Flutter engine .NET MAUI

Features

Electron NW.JS Tauri NodeGui Neutralino Wails Flutter .Net MAUI
Integrated updater ? Official Community Official No Official Planned No, but there are community solutions No
Automated Tests Standard node.js tests (back-end) or Webdriver/Playwright (UI) Standard node.js tests (back-end) or Webdriver(UI) Cargo (back-end) or Webdriver (UI) ? ? ? Integrated Standard C# tests (back-end), no official solution for UI
WebGL Support Yes Yes Yes ? Yes Yes Yes Yes, but not on all flavors

Front-end frameworks/technologies

Electron NW.JS Tauri NodeGui Neutralino Wails Flutter .Net MAUI
Angular Yes Yes Yes, official via Vite Yes, community Yes Yes No No
NextJS ? ? Yes, official ? ? Yes No No
Preact Yes Yes Yes, official via Vite ? Yes Yes No No
Qwik Yes Yes Yes, official ? Yes Yes No No
React Yes Yes Yes, official via Vite Yes, official but EOL Yes Yes No No
Svelte Yes Yes Yes, official via sveltekit or Vite Yes, official Yes Yes No No
Vue Yes Yes Yes, official via Vite Yes, official Yes Yes No No
Vite Yes Yes Yes, official ? Yes Yes No No

Operating systems support

Electron NW.JS Tauri NodeGui Neutralino Wails Flutter .Net MAUI
Developement Environment Windows ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
MacOS ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Linux ✔️1 ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Target Environment Windows ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
MacOS ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Linux ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ Soon
Android Requested Soon2 Requested ✔️ ✔️
iOS In progress2 Requested ✔️ ✔️
tvOS ✔️
Web ✔️3 ✔️

1: Linux 32 Bit support dropped
2: https://github.com/tauri-apps/tauri#platforms
3: Uses modes to generate web apps

Benchmarks

See benchmarks.json to get more informations about following data.

Note: These benchmarks are done on Github CI, there are measures to have measurements more accurates (e.g. multiple runs), but it will never exactly be accurate, as it totally depends on system load and resources. You should read these tables as comparision between frameworks on a same OS/Arch/App with a margin of error.

01-empty-app

See source in benchmark/01-empty-app folder.

Build size

Electron NW.JS Tauri NodeGui Neutralino Wails Flutter .Net MAUI .Net MAUI w/ Vue
Windows (x64) ≈263MB ≈354MB ≈1MB ≈171MB ≈2MB ≈8MB ? N/A1 N/A2
Windows (x86) ≈236MB ≈318MB ? ? ? ? ? N/A1 N/A2
Windows (ARM64) ≈270MB Requested ? ? ? ? ? N/A1 N/A2
MacOS (x64) ≈414MB ≈531MB ≈3MB ? ≈1MB ≈7MB ? N/A1 N/A2
MacOS (arm64) ≈391MB ? ? ? ? ? ? N/A1 N/A2
Linux (x64) ≈263MB ≈474MB ≈2MB ≈75MB ≈1MB ≈7MB ? N/A1 N/A2
Linux (x86) ? ≈473MB ? ? ? ? ? N/A1 N/A2
Linux (ARMv7l) ≈199MB Requested ? ? ? ? ? N/A1 N/A2
Linux (ARM64) ≈270MB Requested ? ? ≈1MB ? ? N/A1 N/A2

Build time

Electron NW.JS Tauri NodeGui Neutralino Wails Flutter .Net MAUI .Net MAUI w/ Vue
Windows (x64) ≈3627ms ≈11867ms ≈180398ms ≈9715ms ≈866ms ≈6423ms ? N/A1 N/A2
Windows (x86) ≈3627ms ≈11867ms ? ? ? ? ? N/A1 N/A2
Windows (ARM64) ≈3627ms Requested ? ? ? ? ? N/A1 N/A2
MacOS (x64) ≈4229ms ≈11867ms ≈121195ms ? ≈561ms ≈49396ms ? N/A1 N/A2
MacOS (arm64) ≈4229ms ? ? ? ? ? ? N/A1 N/A2
Linux (x64) ≈1906ms ≈11867ms ≈215568ms ≈7097ms ≈561ms ≈28785ms ? N/A1 N/A2
Linux (x86) ? ≈11867ms ? ? ? ? ? N/A1 N/A2
Linux (ARMv7l) ≈1906ms Requested ? ? ? ? ? N/A1 N/A2
Linux (ARM64) ≈1906ms Requested ? ? ≈561ms ? ? N/A1 N/A2

Memory Usage - (Average of runs) Median of used memory for main process and children ones)

Electron NW.JS Tauri NodeGui Neutralino Wails Flutter .Net MAUI .Net MAUI w/ Vue
Windows (x64) ≈385MB (Debug) => ≈243MB (Release) ≈423MB (Debug) => ≈285MB (Release) ≈361MB (Debug) => ≈254MB (Release) ≈181MB (Debug) ≈102MB (Debug) ≈415MB (Debug) => ≈421MB (Release) ≈925MB (Debug) N/A1 N/A2
MacOS (x64) ≈307MB (Debug) => ≈203MB (Release) ≈426MB (Debug) => ≈280MB (Release) ≈154MB (Debug) => ≈32MB (Release) ≈153MB (Debug) ≈209MB (Debug) => ≈31MB (Release) ≈204MB (Debug) => ≈36MB (Release) ≈183MB (Debug) N/A1 N/A2
Linux (x64) ≈703MB (Debug) => ≈572MB (Release) ≈212MB (Debug) ≈321MB (Debug) => ≈94MB (Release) ≈330MB (Debug) ≈1GB (Debug) => ≈916MB (Release) ≈658MB (Debug) => ≈432MB (Release) ≈24MB (Debug) N/A1 N/A2

Memory Usage - (Average of runs) Median of difference between system measured free memory before execution and during execution)

Electron NW.JS Tauri NodeGui Neutralino Wails Flutter .Net MAUI .Net MAUI w/ Vue
Windows (x64) ≈198MB (Debug) => ≈86MB (Release) ≈265MB (Debug) => ≈152MB (Release) ≈250MB (Debug) => ≈153MB (Release) ≈145MB (Debug) ≈86MB (Debug) ≈274MB (Debug) => ≈162MB (Release) ≈817MB (Debug) N/A1 N/A2
MacOS (x64) ≈148MB (Debug) => ≈114MB (Release) ≈246MB (Debug) => ≈131MB (Release) ≈215MB (Debug) => ≈42MB (Release) ≈88MB (Debug) ≈157MB (Debug) => ≈39MB (Release) ≈204MB (Debug) => ≈42MB (Release) ≈177MB (Debug) N/A1 N/A2
Linux (x64) ≈159MB (Debug) => ≈96MB (Release) ≈105MB (Debug) ≈115MB (Debug) => ≈18MB (Release) ≈240MB (Debug) ≈590MB (Debug) => ≈462MB (Release) ≈279MB (Debug) => ≈167MB (Release) ≈15MB (Debug) N/A1 N/A2

Start duration

Electron NW.JS Tauri NodeGui Neutralino Wails Flutter .Net MAUI .Net MAUI w/ Vue
Windows (x64) ≈1194ms (Debug) => ≈221ms (Release) ≈510ms (Release) ≈2886ms (Debug) => ≈427ms (Release) ≈8655ms (Debug) ? ≈8452ms (Debug) => ≈406ms (Release) ? N/A1 N/A2
MacOS (x64) ≈760ms (Debug) => ≈308ms (Release) ≈950ms (Release) ≈3832ms (Debug) => ≈354ms (Release) ? ≈1411ms (Debug) => ≈356ms (Release) ≈5812ms (Debug) => ≈367ms (Release) ? N/A1 N/A2
Linux (x64) ≈595ms (Debug) => ≈276ms (Release) ? ≈34233ms (Debug) ? ≈1222ms (Debug) => ≈320ms (Release) ≈3209ms (Debug) => ≈242ms (Release) ? N/A1 N/A2

1: Benchmark WIP
2: Benchmark WIP

02-empty-app-frameless

See source in benchmark/02-empty-app-frameless folder.

Build size

Electron NW.JS Tauri NodeGui Neutralino Wails Flutter .Net MAUI .Net MAUI w/ Vue
Windows (x64) ≈263MB ≈354MB ≈1MB ≈171MB ≈2MB ≈8MB N/A1 N/A2 N/A3
Windows (x86) ≈236MB ≈318MB ? ? ? ? N/A1 N/A2 N/A3
Windows (ARM64) ≈270MB Requested ? ? ? ? N/A1 N/A2 N/A3
MacOS (x64) ≈414MB ≈531MB ≈3MB ? ≈1MB ≈7MB N/A1 N/A2 N/A3
MacOS (arm64) ≈391MB ? ? ? ? ? N/A1 N/A2 N/A3
Linux (x64) ≈263MB ≈474MB ≈2MB ≈75MB ≈1MB ≈7MB N/A1 N/A2 N/A3
Linux (x86) ? ≈473MB ? ? ? ? N/A1 N/A2 N/A3
Linux (ARMv7l) ≈199MB Requested ? ? ? ? N/A1 N/A2 N/A3
Linux (ARM64) ≈270MB Requested ? ? ≈1MB ? N/A1 N/A2 N/A3

Build time

Electron NW.JS Tauri NodeGui Neutralino Wails Flutter .Net MAUI .Net MAUI w/ Vue
Windows (x64) ≈3350ms ≈14685ms ≈195529ms ≈10004ms ≈643ms ≈6380ms N/A1 N/A2 N/A3
Windows (x86) ≈3350ms ≈14685ms ? ? ? ? N/A1 N/A2 N/A3
Windows (ARM64) ≈3350ms Requested ? ? ? ? N/A1 N/A2 N/A3
MacOS (x64) ≈5060ms ≈14685ms ≈139077ms ? ≈595ms ≈50286ms N/A1 N/A2 N/A3
MacOS (arm64) ≈5060ms ? ? ? ? ? N/A1 N/A2 N/A3
Linux (x64) ≈1954ms ≈14685ms ≈213619ms ≈7104ms ≈595ms ≈30471ms N/A1 N/A2 N/A3
Linux (x86) ? ≈14685ms ? ? ? ? N/A1 N/A2 N/A3
Linux (ARMv7l) ≈1954ms Requested ? ? ? ? N/A1 N/A2 N/A3
Linux (ARM64) ≈1954ms Requested ? ? ≈595ms ? N/A1 N/A2 N/A3

Memory Usage - (Average of runs) Median of used memory for main process and children ones)

Electron NW.JS Tauri NodeGui Neutralino Wails Flutter .Net MAUI .Net MAUI w/ Vue
Windows (x64) ≈381MB (Debug) => ≈241MB (Release) ≈392MB (Debug) => ≈279MB (Release) ≈356MB (Debug) => ≈252MB (Release) ≈178MB (Debug) ≈85MB (Debug) ≈416MB (Debug) => ≈261MB (Release) N/A1 N/A2 N/A3
MacOS (x64) ≈307MB (Debug) => ≈203MB (Release) ≈406MB (Debug) => ≈280MB (Release) ≈152MB (Debug) => ≈30MB (Release) ≈154MB (Debug) ≈196MB (Debug) => ≈30MB (Release) ≈202MB (Debug) => ≈33MB (Release) N/A1 N/A2 N/A3
Linux (x64) ≈700MB (Debug) => ≈568MB (Release) ≈213MB (Debug) ≈320MB (Debug) => ≈93MB (Release) ≈328MB (Debug) ≈1GB (Debug) => ≈917MB (Release) ≈656MB (Debug) => ≈430MB (Release) N/A1 N/A2 N/A3

Memory Usage - (Average of runs) Median of difference between system measured free memory before execution and during execution)

Electron NW.JS Tauri NodeGui Neutralino Wails Flutter .Net MAUI .Net MAUI w/ Vue
Windows (x64) ≈192MB (Debug) => ≈100MB (Release) ≈242MB (Debug) => ≈149MB (Release) ≈236MB (Debug) => ≈152MB (Release) ≈130MB (Debug) ≈69MB (Debug) ≈276MB (Debug) => ≈164MB (Release) N/A1 N/A2 N/A3
MacOS (x64) ≈164MB (Debug) => ≈96MB (Release) ≈205MB (Debug) => ≈125MB (Release) ≈192MB (Debug) => ≈44MB (Release) ≈90MB (Debug) ≈148MB (Debug) => ≈39MB (Release) ≈237MB (Debug) => ≈47MB (Release) N/A1 N/A2 N/A3
Linux (x64) ≈148MB (Debug) => ≈90MB (Release) ≈108MB (Debug) ≈114MB (Debug) => ≈15MB (Release) ≈234MB (Debug) ≈576MB (Debug) => ≈470MB (Release) ≈279MB (Debug) => ≈163MB (Release) N/A1 N/A2 N/A3

Start duration

Electron NW.JS Tauri NodeGui Neutralino Wails Flutter .Net MAUI .Net MAUI w/ Vue
Windows (x64) ≈1223ms (Debug) => ≈222ms (Release) ≈512ms (Release) ≈2931ms (Debug) => ≈413ms (Release) ≈5268ms (Debug) ? ≈8508ms (Debug) => ≈409ms (Release) N/A1 N/A2 N/A3
MacOS (x64) ≈776ms (Debug) => ≈395ms (Release) ≈1119ms (Release) ≈3817ms (Debug) => ≈338ms (Release) ? ≈1620ms (Debug) => ≈409ms (Release) ≈6110ms (Debug) => ≈351ms (Release) N/A1 N/A2 N/A3
Linux (x64) ≈602ms (Debug) => ≈279ms (Release) ? ≈34869ms (Debug) ? ≈1251ms (Debug) => ≈324ms (Release) ≈3333ms (Debug) => ≈246ms (Release) N/A1 N/A2 N/A3

1: Frameless mode not supported yet
2: Frameless mode not working
3: Frameless mode not working

Future content

See Issues and Pull requests. You can participate by proposing new issues, of filling them !

Contributors

List of contributors to this repository

web-to-desktop-framework-comparison's People

Contributors

brooksvb avatar d3sox avatar dependabot[bot] avatar edwargix avatar elanis avatar mesteery avatar skimhugo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

web-to-desktop-framework-comparison's Issues

Memory usage is very incorrect on some projects

Some projects use the system webview, when they allocate and use the system webivew the memory is allocated by the system and so it shows up as being used by the system. It unfortunately is not actually tracked against the process. This gives you a very invalid idea of how much memory the actual process is actually using...

For example, Wails (or Tauri) might just 40m memory usage, but the system might be using another 60m of memory for the webview instance that it is managing on behalf of the Tauri/Wails app. To get the actual memory usage of these types of projects, you need to measure total system memory usage before app is ran, and then while app is being ran to see how much memory the system had to allocate for the process. Doing this either multiple times in a row or running the app multiple times at the same time can give you the approximate memory usage the system is allocating for each run of app that is using a system webview. (Please note, when checking global memory you will also need to check for additional used swap memory usage, and ignore any memory used or freed by caches)

In my tests, the majority of the memory is NOT shared between instances and is allocated per instance of the app. Even though the system is allocating the memory, it is purely for the app and is not actually shared.


One other very minor nitpick, the html used in each app (for those using a webview) should be as close to identical as possible. For example if I do <div>This is Electron</div> and do <div><p><b>This is NW.JS</b></p></div> the memory NW.JS uses in the webview will be more than Electron, because you now have three HTMLNodes having to be allocated by the webview in NW.JS vs the one in Electron. So to make things a lot closer, I would recommend that at least for your base tests, that the html displayed is as close to identical as possible to eliminate any extra css or html that has to be rendered, processed and allocated... 😀

01-empty-app/electron - Update

$ npm-check
(node:8780) [DEP0128] DeprecationWarning: Invalid 'main' field in 'C:\Users\elani\AppData\Roaming\npm\node_modules\npm-check\node_modules\find-parent-dir\package.json' of 'find-parent-dir.js'. Please either fix that or report it to the module author
(Use `node --trace-deprecation ...` to show where the warning was created)

electron            😎  MAJOR UP  Major update available. https://github.com/electron/electron#readme
                                 npm install --save-dev [email protected] to go from 13.1.8 to 14.0.0

electron-packager   😍  UPDATE!   Your local install is out of date. https://github.com/electron/electron-packager
                                 npm install --save-dev [email protected] to go from 15.3.0 to 15.4.0                                

Neutralinojs memory consumption

Even if I am a huge fan of your project, I don't think that neutralino can take only 5 Mo of memory. The Edge webview uses at least 60 Mo. Maybe I'm wrong ...
image

[ Question ] Neutralinojs supports web as a target (or not)?

If we run the Neutralinojs in cloud mode and bind to a domain, anyone can access it as a web application. But all the native functionalities won't run purely inside the browser. So maybe we could add a small hint about this scenario into your comparison. Maybe "Partial" instead of the red icon in the "Operating System" section?

Just an idea. you can check more about cloud mode here: https://neutralino.js.org/docs/developer-environment/modes#cloud

Thanks for creating an awesome comparison!

Misleading neutralino benchmarks.

the RAM & CPU usage of neutralinojs apps in the benchmarks only represents the main executable's resource usage, but the main executable of neutralino is only responsible for connecting the webview framework to the low level operations like file IO.

neutralino itself doesn't do any sort of rendering and executing js code, instead it uses the available webview runtime which in many cases performs worse than electron. you need to include the CPU & RAM usage of the child webview process spawned via neutralino or else it just makes no sense to include benchmark of a app which only connects the webview and low level operations.

Tauri Build Size

A tauri build size of 453MB is definitely an error in measurement. Did you add the size of the target folder (with the dependencies?)

Add Avalonia to the list

Avalonia is yet another cross-platform GUI toolkit built on top of the Skia engine (the same engine powering Flutter) for dotnet. It targets Windows, Linux, macOS and has beta support for Android and iOS, as well as an early support to Wasm.

01-empty-app/nodegui - Update

$ npm-check
(node:6648) [DEP0128] DeprecationWarning: Invalid 'main' field in 'C:\Users\elani\AppData\Roaming\npm\node_modules\npm-check\node_modules\find-parent-dir\package.json' of 'find-parent-dir.js'. Please either fix that or report it to the module author
(Use `node --trace-deprecation ...` to show where the warning was created)

@nodegui/nodegui       😎  NEW VER!  NonSemver update available. https://github.com/nodegui/nodegui#readme
                                    npm install --save @nodegui/[email protected] to go from 0.33.3 to 0.37.3

@nodegui/packer        😕  NOTUSED?  Still using @nodegui/packer?
                                    Depcheck did not find code similar to require('@nodegui/packer') or import from '@nodegui/packer'.                                    Check your code before removing as depcheck isn't able to foresee all ways dependencies can be used.
                                    Use --skip-unused to skip this check.
                                    To remove this package: npm uninstall --save-dev @nodegui/packer

@types/node            😎  MAJOR UP  Major update available. https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node                                    npm install --save-dev @types/[email protected] to go from 14.17.9 to 16.9.1

clean-webpack-plugin   😎  MAJOR UP  Major update available. https://github.com/johnagan/clean-webpack-plugin
                                    npm install --save-dev [email protected] to go from 3.0.0 to 4.0.0

ts-loader              😎  MAJOR UP  Major update available. https://github.com/TypeStrong/ts-loader
                                    npm install --save-dev [email protected] to go from 8.3.0 to 9.2.5

typescript             😍  UPDATE!   Your local install is out of date. https://www.typescriptlang.org/
                                    npm install --save-dev [email protected] to go from 4.3.5 to 4.4.3

webpack                😍  UPDATE!   Your local install is out of date. https://github.com/webpack/webpack
                                    npm install --save-dev [email protected] to go from 5.49.0 to 5.52.1

webpack-cli            😍  UPDATE!   Your local install is out of date. https://github.com/webpack/webpack-cli/tree/master/packages/webpack-cli
                                    npm install --save-dev [email protected] to go from 4.7.2 to 4.8.0
                       😕  NOTUSED?  Still using webpack-cli?
                                    Depcheck did not find code similar to require('webpack-cli') or import from 'webpack-cli'.
                                    Check your code before removing as depcheck isn't able to foresee all ways dependencies can be used.
                                    Use --skip-unused to skip this check.
                                    To remove this package: npm uninstall --save-dev webpack-cli

Crash when benchmarking release version of nw.js example on linux x64

Error:  stderr: [10259:10259:1101/121205.499488:FATAL:spawn_subprocess.cc(221)] posix_spawn: Permission denied (13)
#0 0x7f19ea726033 (/home/runner/work/web-to-desktop-framework-comparison/web-to-desktop-framework-comparison/benchmark/01-empty-app/nw.js/dist/01-empty-app-1.0.0-linux-x64/lib/libnw.so+0x5f1b032)
#1 0x7f19ea73aa53 (/home/runner/work/web-to-desktop-framework-comparison/web-to-desktop-framework-comparison/benchmark/01-empty-app/nw.js/dist/01-empty-app-1.0.0-linux-x64/lib/libnw.so+0x5f2fa52)
#2 0x7f19ea73ba5a (/home/runner/work/web-to-desktop-framework-comparison/web-to-desktop-framework-comparison/benchmark/01-empty-app/nw.js/dist/01-empty-app-1.0.0-linux-x64/lib/libnw.so+0x5f30a59)
#3 0x7f19eb3032f3 (/home/runner/work/web-to-desktop-framework-comparison/web-to-desktop-framework-comparison/benchmark/01-empty-app/nw.js/dist/01-empty-app-1.0.0-linux-x64/lib/libnw.so+0x6af82f2)
#4 0x7f19eb2f86a3 (/home/runner/work/web-to-desktop-framework-comparison/web-to-desktop-framework-comparison/benchmark/01-empty-app/nw.js/dist/01-empty-app-1.0.0-linux-x64/lib/libnw.so+0x6aed6a2)
#5 0x7f19ecf864f7 (/home/runner/work/web-to-desktop-framework-comparison/web-to-desktop-framework-comparison/benchmark/01-empty-app/nw.js/dist/01-empty-app-1.0.0-linux-x64/lib/libnw.so+0x877b4f6)
#6 0x7f19ecf7f18e (/home/runner/work/web-to-desktop-framework-comparison/web-to-desktop-framework-comparison/benchmark/01-empty-app/nw.js/dist/01-empty-app-1.0.0-linux-x64/lib/libnw.so+0x877418d)
#7 0x7f19e69dcfda (/home/runner/work/web-to-desktop-framework-comparison/web-to-desktop-framework-comparison/benchmark/01-empty-app/nw.js/dist/01-empty-app-1.0.0-linux-x64/lib/libnw.so+0x21d1fd9)
#8 0x7f19ea29fd19 (/home/runner/work/web-to-desktop-framework-comparison/web-to-desktop-framework-comparison/benchmark/01-empty-app/nw.js/dist/01-empty-app-1.0.0-linux-x64/lib/libnw.so+0x5a94d18)
#9 0x7f19ea29d86a (/home/runner/work/web-to-desktop-framework-comparison/web-to-desktop-framework-comparison/benchmark/01-empty-app/nw.js/dist/01-empty-app-1.0.0-linux-x64/lib/libnw.so+0x5a92869)
#10 0x7f19ea29dc61 (/home/runner/work/web-to-desktop-framework-comparison/web-to-desktop-framework-comparison/benchmark/01-empty-app/nw.js/dist/01-empty-app-1.0.0-linux-x64/lib/libnw.so+0x5a92c60)
#11 0x7f19e69db1e7 (/home/runner/work/web-to-desktop-framework-comparison/web-to-desktop-framework-comparison/benchmark/01-empty-app/nw.js/dist/01-empty-app-1.0.0-linux-x64/lib/libnw.so+0x21d01e6)
#12 0x7f19e45e7083 (/usr/lib/x86_64-linux-gnu/libc-2.31.so+0x24082)

Add Wails to the list

What

  • Consider to add Wails to the list
    https://wails.io/
    Build beautiful cross-platform applications using Go

How

  • Create similar app like Tauri

Why

  • Wails is a project that enables you to write desktop apps using Go and web technologies.

  • Consider it a lightweight and fast Electron alternative for Go. You can easily build applications with the flexibility and power of Go, combined with a rich, modern frontend.

CPU Usage Benchmarks

I would love to see CPU usage benchmarks for the different frameworks, particularly background CPU usage.

It seems like Electron apps always have egregious background CPU usage and I'd like to know how the others stack up.

How to run Neutralinojs benchmark source

Hi, I have tried running neutralinojs benchmark on Linux with different neu CLI versions, the CLI complaints about the bin file not existing.

here are screen shots:

tried with latest neu-cli:

image

tried with older version of neu-cli:
image

could you post your way to run or build the benchmark source?

Add Revery to the list

Revery is a work-in-progress cross-platform UI toolkit that doesn't use native GUI library (similar to Flutter). It uses Electron under-the-hood bundled with native React/Redux-like libraries and claims to be more performant in term of CPU+RAM usages than using Electron directly.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.