(Translated by https://www.hiragana.jp/)
GitHub - amishakov/awesome-electron-alternatives: A curated list of awesome Electron alternatives.
Skip to content

amishakov/awesome-electron-alternatives

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Maintenance Maintainer Ask Me Anything ! GitHub license GitHub commits GitHub forks GitHub stars GitHub watchers GitHub contributors GitHub issues GitHub issues-closed GitHub open-pull-requests GitHub pull-requests closed GitHub branches made-with-markdown GitHub latest commit

A curated list of awesome Electron alternatives.

Electron is an open-source framework for creating desktop apps using web technologies as JavaScript, HTML and CSS. It combines the Chromium rendering engine and the Node.js runtime.

There are a number of good reasons to avoid Electron or consider something other than Electron:

👓 Alternatives to the Electron.js

C#(.Net)

  • Orleans: Cloud Native application framework for .NET
  • Avalonia: Avalonia UI creates pixel-perfect, native, create Multi-Platform Apps with .NET
  • Uno: Pixel-Perfect Multi-Platform Applications with C# and WinUI.
  • Chromely: Build HTML Desktop Apps on .NET/.NET Core/.NET 5 using native GUI, HTML5, JavaScript, CSS.
  • SpiderEye: Cross platform .Net Core applications with a webview UI.
  • Photino.NET: Photino uses the OSs built-in WebKit-based browser control for Windows, macOS and Linux. Photino is the lightest cross-platform framework. Compared to Electron, a Photino app is up to 110 times smaller! And it uses far less system memory too!.
  • foton: Prototype for an Electron alternative written in C# by Integrative Software LLC and contributors.

C/C++

  • Qt: Qt (pronounced "cute") is free and open-source cross-platform software for creating graphical user interfaces as well as cross-platform applications.
  • wxWidgets: wxWidgets is a C++ library that lets developers create applications for Windows, macOS, Linux and other platforms with a single code base. It has popular language bindings for Python, Ruby, Lua, Perl and several other languages.
  • sciter: Embeddable HTML/CSS/JavaScript engine for modern UI development.
  • Ultralight: Ultra-fast, ultra-light, standards-compliant HTML renderer for applications and games. Based on WebKit— supports most modern HTML5, CSS, and JavaScript features while still remaining light and configurable.
  • Webview: Tiny cross-platform webview library which uses Cocoa/WebKit on macOS, gtk-webkit2 on Linux and Edge on Windows 10.
  • Molybden: An SDK for building modern and secure cross-desktop apps with HTML/CSS/JavaScript GUI.
  • Saucer: 🛸 Next-gen desktop apps with web-frontend in C++.
  • tiny: This is a tiny alternative to electron.
  • UnityHub: A native alternative to the heavy Electron Unity Hub, written in C++. UnityHubNative is a lightweight C++ / wxWidgets alternative to the unnecessarily heavy official Unity Hub, built using wxWidgets. This means that, instead of using heavy web components like the official Electron hub, it uses native GUI components on all platforms. It launches many times faster, uses far less memory and CPU, and is a fraction of the total size of the offical Unity Hub.

Crystal

  • Crystal Webview: Crystal language bindings for webview, a tiny cross-platform webview library which uses Cocoa/WebKit on macOS, gtk-webkit2 on Linux and Edge on Windows 10).

Dart

  • flutter: Flutter is an open source framework by Google for building beautiful, natively compiled, multi-platform applications from a single codebase.

Go

  • lorca: Build cross-platform modern desktop apps in Go + HTML5.
  • wails: Create beautiful applications using Go.
  • muon: Lightweight alternative to Electron written in Golang in about ~300 LoC, using Ultralight instead of Chromium.

Guile

Java

  • Swing: Swing is a GUI widget toolkit for Java.[1] It is part of Oracle's Java Foundation Classes (JFC) – an API for providing a graphical user interface (GUI) for Java programs.
  • OpenJFX or JavaFX: JavaFX is an open source, next generation client application platform for desktop, mobile and embedded systems built on Java. It is a collaborative effort by many individuals and companies with the goal of producing a modern, efficient, and fully featured toolkit for developing rich client applications.
  • webview: Template project for Android Studio that allows you to create an android webview application in minutes. You can use it to create a simple app for your website or as a starting point for your HTML5 based android app.

JS/Nodejs

  • Astrodon: Desktop App Framework (not there yet!) for Deno, based on Tauri currently unmaintained
  • WelsonJS: Build Windows desktop apps with JavaScript, HTML, and CSS based on WSH/HTA or GTK.
  • NW.js: Similar to electron, provides Source code protection).
  • DeskGap: bundles a Node.js runtime and leaves the HTML rendering to the operating system‘s webview).
  • Neutralinojs: chromium module is replaced with either user’s web browser or built-in browser component. Node run-time is replaced with a lightweight web server which exposes native OS functionality).
  • Proton Native: does the same to desktop that React Native did to mobile, based on libui-node.
  • React Native Desktop Cross-platform React Native Desktop port based on Qt framework.
  • Vuido: Creating native desktop applications based on Vue.js, based on libui-node
  • NodeGui: Powered by Qt5, NodeGui-React, Vue NodeGui, Svelte-NodeGui
  • quasar: Vue.js based framework, which lets web developer to quickly create responsive websites/apps.
  • nidium: A powerful rendering engine for modern mobile applications. Unlike many solution, nidium doesn't rely on webviews or native OS widgets. Instead, it uses its own high-performance rendering engine to draw custom widgets.
  • electrino: Desktop runtime for apps built on web technologies, using the system's own web browser engine.
  • graffiti: HTML/CSS engine for node.js and deno.
  • Sciter.JS: Is a 5MB HTML/CSS/JS (ES6) runtime aimed as a direct Electron replacement.
  • Avernakis Nodejs addon for Avernakis SDK, use TypeScript to develop modern desktop app with powerful UI kits.
  • Gluon Uses normal system installed browsers (not webviews) and NodeJS, also supports Firefox.
  • modern-hta: Run modern code in an HTML Application.
  • webview_deno: 🌐 Deno bindings for webview, a tiny library for creating web-based desktop GUIs

Kotlin

  • Compose Multiplatform: Declarative framework for sharing UIs across multiple platforms. Based on Kotlin and Jetpack Compose. Developed by JetBrains and open-source contributors.

Perl

  • Gtk: Gtk3 - Perl interface to the 3.x series of the gtk+ toolkit.
  • Prima: Prima - a perl graphic toolkit.
  • Perl Executing Browser: Perl Executing Browser (PEB) is an HTML user interface for Perl 5 desktop applications. It is a C++ Qt 5 application running local Perl scripts as child processes without server. Inspired by Electron and NW.js, PEB is another reuse of web technologies in desktop applications with Perl doing the heavy lifting instead of Node.js.
  • Tk: Perl/Tk is an extension for writing Perl programs with a Graphical User Interface (GUI) on both Unix and Windows 95/NT. Tk was originally developed as an extension to the Tcl language, for use with the X Window System on Unix.
  • Tkx: Tkx - Yet another Tk interface.
  • Wx: The Wx module is a wrapper for the wxWidgets (formerly known as wxWindows) GUI toolkit.

PHP

  • NativePHP: NativePHP is a new framework for rapidly building rich, native desktop applications using PHP, HTML, CSS, Javascript.
  • PHP TkUI: Build native desktop applications using PHP and Tcl/Tk.

Python

  • fbs: Python and Qt are great for writing lightweight desktop apps. But packaging, installers, code signing and automatic updates are a pain. fbs solves these problems and saves you months of development.
  • PyQt: PyQt is a Python binding of the cross-platform GUI toolkit Qt, implemented as a Python plug-in. PyQt is free software developed by the British firm Riverbank Computing.
  • PySide: PySide is a Python binding of the cross-platform GUI toolkit Qt.
  • Kivy: The Open Source Python App Development Framework. Build and distribute beautiful Python cross-platform GUI apps with ease. Kivy runs on Android, iOS, Linux, macOS and Windows.
  • PyGUI: An project to develop a cross-platform pythonic GUI API.
  • Flet: The fastest way to build Flutter apps in Python.
  • Eel A little Python library for making simple Electron-like HTML/JS GUI apps.
  • wxPython: Cross-platform GUI toolkit for the Python language. With wxPython software developers can create truly native user interfaces for their Python applications, that run with little or no modifications on Windows, Macs and Linux or other unix-like systems.
  • Tkinter: The Tkinter module or "Tk interface" is the standard Python interface to the Tk GUI toolkit. Both Tk and Tkinter are available on most Unix platforms, as well as on Windows systems. Tk itself is not part of Python; it is maintained at ActiveState.
  • pywebview: Build GUI for your Python program with JavaScript, HTML, and CSS.
  • Pysimplegui: PySimpleGUI creates graphical user interfaces (GUIs) using Python, quickly and easily!.

Ruby

  • Glimmer: A Domain-Specific Language & metaframework for building GUI apps using Ruby, with bindings for various GUI libraries and also Web.
  • qtbindings: Ruby bindings for Qt.
  • tk: Ruby bindings for Tcl/Tk.
  • ruby-gnome: Ruby bindings from GNOME/GTK3.
  • JRubyFX: JRuby wrapper on JavaFX.
  • traveling-ruby: Runtime to bundle Ruby applications into executables.

Rust

  • gtk-rs: Rust bindings for GTK.
  • revery-ui: Fast, native, cross-platform UI.
  • tauri: Build smaller, faster, and more secure desktop applications with a web frontend.

Delphi

  • FMX (FireMonkey): The FireMonkey® framework is the app development and runtime platform behind RAD Studio, Delphi and C++Builder. FireMonkey is designed for teams building multi-device, true native apps for Windows, OS X, Android and iOS, and getting them to app stores and enterprises fast.

V

  • ui: Isaiah's cross-platform GUI library for V. Inspired by the syntax of Java's Swing.
  • mui: A Cross-Platform UI Library in vlang
  • viup: A V wrapper for the cross-platform UI library, IUP.
  • vi-v: Vi-v is a visual scripting UI for vlang. It allows anyone to create their own programs easily without an extensive programming skill.
  • vxui: vxui is a cross-platform desktop UI framework which use your browser as screen, and use V lang as backend. It reply on Websocket, no http/https, no web server!

📖 Related work

  • Livecode: Lightweight language with [native GUI], integrated IDE, and visual interface builder.
  • Positron: List of electron apps so I can avoid them, and some alternatives to use instead
  • Comparison of Browser Engines: A browser engine (also known as a layout engine or rendering engine) is a core software component of every major web browser. The primary job of a browser engine is to transform HTML documents and other resources of a web page into an interactive visual representation on a user's device. Besides "browser engine", two other related terms are commonly used: "layout engine" and "rendering engine". In theory, layout and rendering (or "painting") could be handled by different engines. In practice, however, these components are tightly coupled and rarely encountered on their own outside of the browser engine.
  • Web To Desktop Framework Comparasion: This repository was made to create an objective comparison of multiple framework that grant us to "transform" our web app to desktop application formats.
  • Awesome-electronjs-hacking: A curated list of awesome resources about Electron.js (in)security
  • Qt: Qt (pronounced "cute") is free and open-source cross-platform software for creating graphical user interfaces as well as cross-platform applications
  • jscherer92/Quark: Create Applications with browser technologies using the native engine in your OS.
  • Xojo: Build Native, Cross-Platform Apps.Rapid application development for Desktop, Web, Mobile & Raspberry Pi.
  • LambdaNative: LambdaNative is freely available under the BSD license, extensively documented, and hosted on GitHub. LambdaNative builds native applications on a wide range of platforms including iOS, Android, Blackberry, OS X, Linux, Windows, OpenBSD, NetBSD, FreeBSD and OpenWrt, from a single source code.
  • REVERY: Fast, native, cross-platform UI.
  • 8th: 8th lets you use your preferred platform to write and test your code. With one click, you generate the executables for any platform 8th supports, from any platform it supports!.
  • CEF: Chromium Embedded Framework (CEF). A simple framework for embedding Chromium-based browsers in other applications.
  • yue/yue: A library for creating native cross-platform GUI apps.
  • Godot: Godot Engine – Multi-platform 2D and 3D game engine.
  • Red: Full-stack lightweight language with native GUI, layout and drawing DSLs
  • HaxeUI Haxe based cross platform (desktop, mobile, web) UI framework
  • HTA/HTML Application: HTML Application or "HTA" is a Microsoft Windows program whose source code consists of HTML, Dynamic HTML, and one or more scripting languages supported by Internet Explorer, such as VBScript or JScript. The HTML is used to generate the user interface, and the scripting language is used for the program logic. An HTA executes without the constraints of the internet browser security model; in fact, it executes as a "fully trusted" application.

📚 Notes

Consider Progressive Web Apps PWA, if your app doesn't require any platform interactions.

"Progressive Web Apps might not be able to replace every kind of native application, but they can be viable replacements for some apps written with the Electron web wrapper technology". For more info: https://www.androidpolice.com/2020/05/27/google-chats-desktop-application-is-now-a-progressive-web-app/

See this: Blazor, ElectronCGI.

❤ Contributions

awesome-electron-alternatives is open to contributions, but I recommend creating an issue or replying in a comment to let me know what you are working on first that way we don't overwrite each other.

Please read CONTRIBUTING.md for details on this project. If you have any questions, feel free to open an issue. And feel free to improve this list by contributing!

📑 License

  • Inspired by the awesome list.
  • Electron-alternatives is licensed with MIT by sudhakar3697 and contributors.
  • The logo of this project is authored, created or licensed by the Electron-js community (brand, open source project), but has no direct relationship with this repository.

🙌 Contributors

About

A curated list of awesome Electron alternatives.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published