Web to Desktop framework comparison

Overview

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 Flutter .Net MAUI
Github stars 99k 39k 25k 7k 5k 133k 13k
Forks 13k 4k 0.6k 0.2k 0.2k 20k 0.6k
Creation date 2013 2011 2017 2019 2018 2018 2020
Last Update 2021 2021 2021 2021 2021 2021 2021
Framework Language C++, JS, Objective-C, Python C++ Rust C++ C++ C, C++, Dart C#
Usage Language - Back JS, C++ JS, C++ Rust JS, C++ JS, C++ Dart C#
Usage Language - Front HTML, CSS, JS HTML, CSS, JS HTML, CSS, JS HTML, CSS, JS HTML, CSS, JS Dart C#
License 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, Tauri Bundler Cmake, make, Node.js, NodeGUI NPM Package Node.js, Neu NPM Package Flutter SDK, Visual Studio 2019 / Clang .Net SDK, Visual Studio (optionnal), WebView2 (optionnal), Xcode (optionnal)
User Dependencies None None None None None None None
npm/yarn module support ✔️ ✔️ ✔️
Engine Chromium Webkit, Chromium WRY (WebKitGTK for Linux, WebKit for MacOS, Webview2 for Windows) Qt WebkitGTK+ Flutter engine .NET MAUI

Operating systems support

Electron NW.JS Tauri NodeGui Neutralino Flutter .Net MAUI
Developement Environment Windows ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
MacOS ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Linux ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Target Environment Windows ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
MacOS ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Linux ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ Soon
Android Requested Soon1 ✔️ ✔️
iOS In progress1 ✔️ ✔️
tvOS ✔️
Web ✔️ 2 ✔️

1: https://github.com/tauri-apps/tauri#platforms
2: Uses modes to generate web apps

Benchmarks

See Benchmark.txt to get more informations about following data.

01 - Empty app

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

Electron NW.JS Tauri NodeGui Neutralino Flutter .Net MAUI
Build size Windows (x64) 180MB 264MB 2.6MB 83.6MB 2MB 18MB 108MB
Windows (x86) 160MB 237MB ? 83.6MB 2MB 18MB ?
Windows (ARM64) 193MB Requested ? ? ? ? ?
MacOS ? 265MB ? ? 2MB ? ?
Linux (x64) 181MB 328MB 5.8MB ? 2MB 56.8MB ?
Linux (x86) 171MB 329MB ? ? 2MB ? ?
Linux (ARM64) 196MB Requested ? ? ? ? ?
Linux (ARMv7l) 128MB Requested ? ? ? ? ?
Android - - ? ? ? ? ?
iOS - - ? ? ? ? ?
tvOS - - - ? ? ? ?
Web - - - ? ? ? ?
Memory Usage Windows ≈58MB ≈67MB (Debug) / ≈63MB (Release) ≈59MB ≈44MB then ≈39MB ≈2.7MB ≈36.2MB (Debug) / ≈23.7MB (Release) ≈61.6MB (Debug) / ≈60.4MB (Release)
MacOS ? ? ? ? ? ? ?
Linux ? ? ? ? ? ? ?
Android - - ? ? ? ? ?
iOS - - ? ? ? ? ?
tvOS - - - ? ? ? ?
Web - - - ? ? ? ?
Start duration Windows ≈131ms ≈21ms (Debug) ≈121ms ≈103ms (Debug) ? ≈5.6ms ?
MacOS ? ? ? ? ? ? ?
Linux ? ? ? ? ? ? ?
Android - - ? ? ? ? ?
iOS - - ? ? ? ? ?
tvOS - - - ? ? ? ?
Web - - - ? ? ? ?

02 - Empty app (Headless)

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

Electron NW.JS Tauri NodeGui Neutralino Flutter .Net MAUI
Build size Windows (x64) 180MB 264MB 2.6MB 83.6MB 2MB N/A1 108MB
Windows (x86) 160MB 237MB ? 83.6MB 2MB N/A1 ?
Windows (ARM64) 193MB Requested ? ? ? N/A1 ?
MacOS ? 265MB ? ? ? N/A1 ?
Linux (x64) 181MB 328MB 5.8MB ? 2MB N/A1 ?
Linux (x86) 171MB 329MB ? ? 2MB N/A1 ?
Linux (ARM64) 196MB Requested ? ? ? N/A1 ?
Linux (ARMv7l) 128MB Requested ? ? ? N/A1 ?
Android - - ? ? ? N/A1 ?
iOS - - ? ? ? N/A1 ?
tvOS - - - ? ? N/A1 ?
Web - - - ? ? N/A1 ?
Memory Usage Windows ≈57MB ≈67MB (Debug) / ≈63MB (Release) ≈59MB ≈44MB then ≈39MB ≈2.7MB N/A1 ≈61.6MB (Debug) / ≈60.4MB (Release)
MacOS ? ? ? ? ? N/A1 ?
Linux ? ? ? ? ? N/A1 ?
Android - - ? ? ? N/A1 ?
iOS - - ? ? ? N/A1 ?
tvOS - - - ? ? N/A1 ?
Web - - - ? ? N/A1 ?
Start duration Windows ≈123ms ≈21ms (Debug) ≈121ms ≈105ms (Debug) ? N/A1 ?
MacOS ? ? ? ? ? N/A1 ?
Linux ? ? ? ? ? N/A1 ?
Android - - ? ? ? N/A1 ?
iOS - - ? ? ? N/A1 ?
tvOS - - - ? ? N/A1 ?
Web - - - ? ? N/A1 ?

1: Frameless mode not supported yet

Future content

TODO:

  • WebGL Support
  • Build constraints
  • Source code protection
  • Modules support (npm, native, etc.)

Benchmarks ideas:

  • BabylonJS scene
  • spreadsheet
  • IDE
Comments
  • Bump serde_json from 1.0.86 to 1.0.87 in /benchmark/01-empty-app/tauri/src-tauri

    Bump serde_json from 1.0.86 to 1.0.87 in /benchmark/01-empty-app/tauri/src-tauri

    Bumps serde_json from 1.0.86 to 1.0.87.

    Release notes

    Sourced from serde_json's releases.

    v1.0.87

    • Add write_i128 and write_u128 methods to serde_json::Formatter to control the formatting of 128-bit integers (#940, thanks @​Lucretiel)
    Commits
    • 993e7a6 Release 1.0.87
    • 3107034 Eliminate needless 'tri!' from Serializer impl
    • 46c9778 Merge pull request #942 from serde-rs/integer128
    • 37e76e0 Assume serde_if_integer128 is true
    • ec0456a Use existing macros to implement 128-bit From impls
    • c183125 Merge pull request #941 from serde-rs/alloc
    • ab0f884 Delete 1.36+ caveat from descriptions of alloc feature
    • 486598b Merge pull request 940 from Lucretiel/int128
    • 84d6d95 Add direct support for i128 and u128 via itoa
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 4
  • Bump @types/node from 18.11.0 to 18.11.3 in /benchmark/02-empty-app-frameless/nodegui

    Bump @types/node from 18.11.0 to 18.11.3 in /benchmark/02-empty-app-frameless/nodegui

    Bumps @types/node from 18.11.0 to 18.11.3.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies javascript 
    opened by dependabot[bot] 4
  • Add Wails to the list

    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.

    duplicate 
    opened by jellydn 3
  • Bump electron from 21.1.0 to 21.1.1 in /benchmark/02-empty-app-frameless/electron

    Bump electron from 21.1.0 to 21.1.1 in /benchmark/02-empty-app-frameless/electron

    Bumps electron from 21.1.0 to 21.1.1.

    Release notes

    Sourced from electron's releases.

    electron v21.1.1

    Release Notes for v21.1.1

    Fixes

    • Fixed a drag-and-drop issue on macOS where items would be incorrectly moved instead of copied in some contexts. #35977 (Also in 20, 22)
    • Fixed a potential memory leak. #35965 (Also in 22)
    • Fixed an issue where some options were incorrectly ignored when using webContents.printToPDF(). #35992 (Also in 22)
    • Fixed on-screen-keyboard not hiding on input rendered in webview is blurred. #35982 (Also in 20, 22)
    • You can now import the built-in electron module via ESModule loaders, i.e. import('electron') and import 'electron' now work natively. #35958 (Also in 20, 22)

    Other Changes

    • Modified the Windows 11 WCO to match the native look more closely. #35970 (Also in 20)
    • Updated Chromium to 106.0.5249.103. #35933
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies javascript 
    opened by dependabot[bot] 3
  • Bump tar from 0.4.35 to 0.4.38 in /benchmark/02-empty-app-headless/tauri/src-tauri

    Bump tar from 0.4.35 to 0.4.38 in /benchmark/02-empty-app-headless/tauri/src-tauri

    Bumps tar from 0.4.35 to 0.4.38.

    Commits
    • dc78ebe Bump to 0.4.38
    • de72a30 Add a method to write a link name without canonicalization (#274)
    • ec5edf1 Add an append_link() method to handle long link targets (#273)
    • 5a1c8ea Add public constructor for PaxExtensions (#271)
    • 8333ef6 Avoid reallocating Strings when creating TarError (#269)
    • 1890555 Consolidate some methods and tweak some lifetimes
    • 64b8e1b Add support for readers that implement Seek (#218) (#266)
    • a2a82e6 Fix the second overflow with self.next
    • de08ca1 Fix an overflow when rounding up the size of a file
    • 60c6bd8 Use rust birthday for HeaderMode::Deterministic timestamp (#262)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies rust 
    opened by dependabot[bot] 3
  • Bump regex from 1.5.4 to 1.5.6 in /benchmark/02-empty-app-headless/tauri/src-tauri

    Bump regex from 1.5.4 to 1.5.6 in /benchmark/02-empty-app-headless/tauri/src-tauri

    Bumps regex from 1.5.4 to 1.5.6.

    Changelog

    Sourced from regex's changelog.

    1.5.6 (2022-05-20)

    This release includes a few bug fixes, including a bug that produced incorrect matches when a non-greedy ? operator was used.

    1.5.5 (2022-03-08)

    This releases fixes a security bug in the regex compiler. This bug permits a vector for a denial-of-service attack in cases where the regex being compiled is untrusted. There are no known problems where the regex is itself trusted, including in cases of untrusted haystacks.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies rust 
    opened by dependabot[bot] 3
  • Bump tokio from 1.9.0 to 1.19.2 in /benchmark/02-empty-app-headless/tauri/src-tauri

    Bump tokio from 1.9.0 to 1.19.2 in /benchmark/02-empty-app-headless/tauri/src-tauri

    Bumps tokio from 1.9.0 to 1.19.2.

    Release notes

    Sourced from tokio's releases.

    Tokio v1.19.1

    1.19.1 (June 5, 2022)

    This release fixes a bug in Notified::enable. (#4747)

    #4747: tokio-rs/tokio#4747

    Tokio v1.19.0

    1.19.0 (June 3, 2022)

    Added

    • runtime: add is_finished method for JoinHandle and AbortHandle (#4709)
    • runtime: make global queue and event polling intervals configurable (#4671)
    • sync: add Notified::enable (#4705)
    • sync: add watch::Sender::send_if_modified (#4591)
    • sync: add resubscribe method to broadcast::Receiver (#4607)
    • net: add take_error to TcpSocket and TcpStream (#4739)

    Changed

    • io: refactor out usage of Weak in the io handle (#4656)

    Fixed

    • macros: avoid starvation in join! and try_join! (#4624)

    Documented

    • runtime: clarify semantics of tasks outliving block_on (#4729)
    • time: fix example for MissedTickBehavior::Burst (#4713)

    Unstable

    • metrics: correctly update atomics in IoDriverMetrics (#4725)
    • metrics: fix compilation with unstable, process, and rt, but without net (#4682)
    • task: add #[track_caller] to JoinSet/JoinMap (#4697)
    • task: add Builder::{spawn_on, spawn_local_on, spawn_blocking_on} (#4683)
    • task: add consume_budget for cooperative scheduling (#4498)
    • task: add join_set::Builder for configuring JoinSet tasks (#4687)
    • task: update return value of JoinSet::join_one (#4726)

    #4498: tokio-rs/tokio#4498 #4591: tokio-rs/tokio#4591 #4607: tokio-rs/tokio#4607 #4624: tokio-rs/tokio#4624 #4656: tokio-rs/tokio#4656 #4671: tokio-rs/tokio#4671 #4682: tokio-rs/tokio#4682 #4683: tokio-rs/tokio#4683 #4687: tokio-rs/tokio#4687 #4697: tokio-rs/tokio#4697 #4705: tokio-rs/tokio#4705 #4709: tokio-rs/tokio#4709 #4713: tokio-rs/tokio#4713 #4725: tokio-rs/tokio#4725 #4726: tokio-rs/tokio#4726 #4729: tokio-rs/tokio#4729

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies rust 
    opened by dependabot[bot] 3
  • Bump crossbeam-utils from 0.8.5 to 0.8.8 in /benchmark/02-empty-app-headless/tauri/src-tauri

    Bump crossbeam-utils from 0.8.5 to 0.8.8 in /benchmark/02-empty-app-headless/tauri/src-tauri

    Bumps crossbeam-utils from 0.8.5 to 0.8.8.

    Release notes

    Sourced from crossbeam-utils's releases.

    crossbeam-utils 0.8.8

    • Fix a bug when unstable loom support is enabled. (#787)

    crossbeam-utils 0.8.7

    • Add AtomicCell<{i*,u*}>::{fetch_max,fetch_min}. (#785)
    • Add AtomicCell<{i*,u*,bool}>::fetch_nand. (#785)
    • Fix unsoundness of AtomicCell<{i,u}64> arithmetics on 32-bit targets that support Atomic{I,U}64 (#781)

    crossbeam-utils 0.8.6

    • Re-add AtomicCell<{i,u}64>::{fetch_add,fetch_sub,fetch_and,fetch_or,fetch_xor} that were accidentally removed in 0.8.0 0.7.1 on targets that do not support Atomic{I,U}64. (#767)
    • Re-add AtomicCell<{i,u}128>::{fetch_add,fetch_sub,fetch_and,fetch_or,fetch_xor} that were accidentally removed in 0.8.0 0.7.1. (#767)
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies rust 
    opened by dependabot[bot] 3
  • Update README.md - Web Support

    Update README.md - Web Support

    All these libraries rely on HTML, CSS, JS for frontend. Saying they don't support web is confusing. If this theory is incorrect, what all should these libraries do, so we can say they support web?

    documentation-improvements 
    opened by xerosanyam 3
  • How to run Neutralinojs benchmark source

    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?

    question 
    opened by oHaiyang 3
  • [ Question ] Neutralinojs supports web as a target (or not)?

    [ 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!

    documentation-improvements 
    opened by shalithasuranga 3
  • Add Sciter, an independent HTML/CSS/JS webview

    Add Sciter, an independent HTML/CSS/JS webview

    Sciter (https://sciter.com/) is a independent, cross-platform open source webview that does not depend on the system webview and browsers.

    It provides both an "embeddable" library and a runtime, optionally available as a shared library, which can greatly reduce memory usage when simultaneous applications depend on it.

    In my tests, it used less memory than github.com/webview/webview.

    library-addition 
    opened by paulocoghi 1
Owner
Axel
Game dev & Web Dev. Founder of Dysnomia (https://dysnomia.studio) a company that create and manage websites & games !
Axel
Appupdater is a C++ cross-platform framework to update desktop software (gitlab mirror)

appupdater is a C++ cross-platform framework to update desktop software. How it works Framework checks the URL you specified for info about versions a

Ronzhin Mikhail 1 Jan 8, 2022
The c++ micro framework for building web applications based on workflow

wfrest The c++ micro framework for building web applications based on workflow ⌛️ Build Step 1 : install workflow git clne [email protected]:sogou/workfl

Shiyu Yi 539 Jan 3, 2023
A beginner friendly desktop UI for Tasmota flashed devices for Windows, macOS and Linux.

TasmoManager A beginner friendly desktop UI for Tasmota flashed devices for Windows, macOS and Linux. Features Native Tasmota device discovery (via ta

Tom Butcher 52 Dec 10, 2022
Add virtual monitors to your windows 10 device! Works with Oculus software, obs, and any desktop sharing software

License MIT and CC0 or Public Domain, whichever is least restrictive -- Use it AS IS - NO IMPLICIT OR EXPLICIT warranty This may break your computer,

Rashi Abramson 230 Jan 6, 2023
A Flutter package that makes it easy to customize and work with your Flutter desktop app's system tray.

system_tray A Flutter package that that enables support for system tray menu for desktop flutter apps. on Windows, macOS and Linux. Features: - Modify

AnTler 140 Dec 30, 2022
This plugin allows Flutter desktop apps to defines system tray.

tray_manager This plugin allows Flutter desktop apps to defines system tray. tray_manager Platform Support Quick Start Installation ⚠️ Linux requireme

LeanFlutter 122 Dec 22, 2022
ContactGot is an offline desktop app, where clients can leave their info, while an administrator can manage which information they need to gather on certain projects.

ContactGot Contents Description How to use Requirements Engineering Installation Documentation Design Architecture Demonstration 1. Description During

Elizaveta 15 Sep 17, 2022
ESP32 based Desktop Clock

ESP32_Desktop_Clock ESP32 based Desktop Clock This ESP32 internet of things desktop clock is a project created for my home. School has started and fal

Mike Rankin 77 Jan 4, 2023
A backend implementation for xdg-desktop-portal

xdg-desktop-portal-lxqt A backend implementation for xdg-desktop-portal that is using Qt/KF5. Building xdg-desktop-portal-lxqt Dependencies: xdg-deskt

LXQt 8 Aug 27, 2022
Temporary Directory for Desktop Build

flutter_tips A new Flutter application. Getting Started This project is a starting point for a Flutter application. A few resources to get you started

Paras Jain 1 Nov 2, 2021
This plugin allows Flutter desktop apps to Auto launch on startup / login.

This plugin allows Flutter desktop apps to Auto launch on startup / login.

LeanFlutter 45 Dec 18, 2022
This plugin allows Flutter desktop apps to defines system/inapp wide hotkey (i.e. shortcut).

hotkey_manager This plugin allows Flutter desktop apps to defines system/inapp wide hotkey (i.e. shortcut). hotkey_manager Platform Support Quick Star

LeanFlutter 82 Jan 6, 2023
Windscribe 2.0 desktop client for Windows, Mac and Linux

Windscribe 2.0 Desktop Application This repo contains the complete source code for the Windscribe 2.0 app. This includes installer, service/helper, ba

Windscribe 362 Jan 3, 2023
Telegram Desktop messaging app

Telegram Desktop – Official Messenger This is the complete source code and the build instructions for the alpha version of the official desktop client

Telegram Desktop 20.7k Dec 30, 2022
SDK for building cross-platform desktop apps in ANSI-C

NAppGUI Cross-Platform C SDK. Build portable desktop applications for Windows, macOS and Linux, using just C. Quick start in Windows Prerequisites Vis

Francisco García Collado 242 Jan 2, 2023
Dwm_lut - Apply 3D LUTs to the Windows desktop for system-wide color correction/calibration

About This tool applies 3D LUTs to the Windows desktop by hooking into DWM. It works in both SDR and HDR modes, and uses tetrahedral interpolation on

null 212 Jan 3, 2023
Dock - Desktop Taskbar.

Dock CutefishOS application dock. Dependencies sudo pacman -S gcc cmake qt5-base qt5-quickcontrols2 kwindowsystem You also need fishui and libcutefish

CutefishOS 93 Nov 24, 2022
A npm package that lets you automate your windows desktop.

js-macro A npm package that lets you automate your windows desktop. npm i js-macro Examples Simple cursor usage const { cursor } = require("js-macro"

5 Jul 30, 2022
A npm package that lets you automate your windows desktop.

js-macro A npm package that lets you automate your windows desktop. npm i js-macro Examples Simple cursor usage const { cursor } = require("js-macro"

5 Jul 30, 2022