Project Icon

awesome-electron-alternatives

Electron.js替代框架汇总 轻量级跨平台桌面应用开发选择

本项目汇总了Electron.js的多种替代框架,涵盖C#、C++、Dart、Go等语言。列举了Flutter、Qt、Avalonia等轻量高效的跨平台桌面应用开发方案,适合希望规避Electron缺点又想使用Web技术的开发者。项目对每个替代方案的特点进行了客观介绍,有助于开发者根据实际需求选择合适框架。

👓 超棒的 Electron.js 替代方案

维护状态 维护者 有问题尽管问! GitHub 许可证 GitHub 提交 GitHub 分支 GitHub 星标 GitHub 观察者 GitHub 贡献者 GitHub 问题 GitHub 已关闭问题 GitHub 待处理拉取请求 GitHub 已关闭拉取请求 GitHub 分支 使用Markdown制作 GitHub 最新提交

Electron 替代方案的精选列表。

Electron 是一个开源框架,用于使用 JavaScript、HTML 和 CSS 等 Web 技术创建桌面应用程序。它结合了 Chromium 渲染引擎和 Node.js 运行时。 避免使用Electron或考虑其他替代方案的一些充分理由:

  • 体积庞大
  • 资源(内存)占用高
  • 源代码保护问题
  • 系统中可能已有可用的Web组件
  • Electron应用无法提交到Apple应用商店
  • 资源占用最小化
  • 开发平台如Kodular的无代码平台、Outsystems的低代码平台、Astra DB的数据库即服务、后端即服务、移动即服务、Figma的前端即服务、银行即服务等
  • 可视化编程范式(包括开发平台、Blockly、无服务器、dbdiagram以及elm、Python、V等编程语言的解决方案或技术)
  • 虽然可以用Electron-js开发游戏,但不推荐用于正式的游戏开发
  • 可以使用JS库和Electron-js创建数据分析和统计仪表盘,但也不推荐

👓 Electron.js的替代方案 ⚛

C#(.Net)

  • Orleans:.NET的云原生应用框架
  • Avalonia:Avalonia UI创建像素完美的原生多平台.NET应用
  • Uno:使用C#和WinUI创建像素完美的多平台应用
  • Chromely:使用原生GUI、HTML5、JavaScript和CSS在.NET/.NET Core/.NET 5上构建HTML桌面应用
  • SpiderEye:使用webview UI的跨平台.Net Core应用
  • Photino.NET:Photino使用操作系统内置的基于WebKit的浏览器控件,适用于Windows、macOS和Linux。Photino是最轻量级的跨平台框架。与Electron相比,Photino应用最多可小110倍!同时系统内存占用也大大降低
  • foton:由Integrative Software LLC及贡献者用C#编写的Electron替代方案原型

C/C++

  • Qt:Qt(发音为"cute")是免费开源的跨平台软件,用于创建图形用户界面和跨平台应用
  • wxWidgets:wxWidgets是一个C++库,允许开发者使用单一代码库为Windows、macOS、Linux和其他平台创建应用。它有流行的Python、Ruby、Lua、Perl等多种语言绑定
  • sciter:用于现代UI开发的可嵌入HTML/CSS/JavaScript引擎
  • Ultralight:适用于应用和游戏的超快速、超轻量、符合标准的HTML渲染器。基于WebKit,支持大多数现代HTML5、CSS和JavaScript功能,同时保持轻量和可配置
  • Webview:小型跨平台webview库,在macOS上使用Cocoa/WebKit,在Linux上使用gtk-webkit2,在Windows 10上使用Edge
  • Molybden:用于使用HTML/CSS/JavaScript GUI构建现代安全的跨桌面应用的SDK
  • Saucer:🛸 使用C++的Web前端构建下一代桌面应用
  • tiny:Electron的一个小型替代方案
  • UnityHubNative:用C++编写的Unity Hub原生替代方案。UnityHubNative是一个轻量级的C++ / wxWidgets替代方案,替代了不必要的重量级官方Unity Hub。它使用wxWidgets构建,这意味着它使用所有平台上的原生GUI组件,而不是像官方Electron hub那样使用重量级Web组件。它启动速度快得多,内存和CPU占用更少,总大小只是官方Unity Hub的一小部分

Crystal

  • Crystal Webview:Crystal语言对webview的绑定,webview是一个小型跨平台webview库,在macOS上使用Cocoa/WebKit,在Linux上使用gtk-webkit2,在Windows 10上使用Edge

Dart

  • flutter:Flutter是Google的开源框架,用于从单一代码库构建美观、原生编译的多平台应用

Delphi

  • FMX (FireMonkey):FireMonkey®框架是RAD Studio、Delphi和C++Builder背后的应用开发和运行时平台。FireMonkey专为团队构建适用于Windows、OS X、Android和iOS的多设备真正原生应用而设计,可快速将应用推向应用商店和企业

Elm

  • Elm UI:用于使用Elm制作Web应用的UI库

Go

  • lorca:使用 Go + HTML5 构建跨平台现代桌面应用程序。
  • wails:使用 Go 创建漂亮的应用程序。
  • muon:用 Golang 编写的 Electron 轻量级替代品,约 300 行代码,使用 Ultralight 替代 Chromium。

Guile

Haskell

  • Fudgets:Fudgets 主要是用于 Haskell 和 X Windows 系统的图形用户界面工具包。Fudgets 还可以轻松创建通过互联网通信的客户端-服务器应用程序。它在 Unix 上运行,但不在 Windows 上运行。
  • Keera Hails:Keera Hails 是一个使用规则或关系连接变化值的库。Keera Hails 与后端无关,不专用于 GUI;它有 Gtk+ 的后端,也有硬件(Wiimote)、文件、套接字和 FRP 驱动的网络(使用 Yampa)的后端,以及 wx、qt、HTML DOM(使用 GHCJS)和 Android 小部件工具包的实验性后端。它已在中等规模(10K-20K 行代码)的应用程序中商业生产使用。
  • Threepenny-gui:Threepenny-gui 是一个使用网络浏览器作为显示的 GUI 框架。它支持函数式响应式编程。
  • webviewhs:webviewhs 是 Serge Zaitsev 创建的 webview 库的 Haskell 绑定。这个绑定允许创建丰富的基于 Web 的 UI 体验,并包裹在 Haskell 强大的类型安全拥抱中。它使用 macOS 上的 Cocoa/WebKit、Linux 上的 gtk-webkit2 和 Windows 上的 MSHTML(IE10/11)来渲染 UI。
  • Monomer:Monomer 是一个易于使用的跨平台 GUI 库,用于编写原生 Haskell 应用程序。它提供了类似于 Elm 架构的框架,允许使用可扩展的小部件集合用纯 Haskell 创建 GUI。

Java

  • Swing:Swing 是 Java 的 GUI 小部件工具包。它是 Oracle 的 Java 基础类(JFC)的一部分 – 为 Java 程序提供图形用户界面(GUI)的 API。
  • OpenJFX 或 JavaFX:JavaFX 是一个开源的、下一代客户端应用平台,适用于基于 Java 构建的桌面、移动和嵌入式系统。它是由许多个人和公司合作努力的结果,目标是为开发丰富的客户端应用程序提供现代、高效和功能齐全的工具包。
  • webview:Android Studio 的模板项目,允许您在几分钟内创建 Android webview 应用程序。您可以使用它为您的网站创建一个简单的应用程序,或作为基于 HTML5 的 Android 应用程序的起点。

JavaScript

  • Sciter.JS:是一个5MB的HTML/CSS/JS(ES6)运行时,旨在直接替代Electron。
  • electrino:基于Web技术构建的桌面应用运行时,使用系统自带的Web浏览器引擎。
  • nidium:一个强大的现代移动应用渲染引擎。与许多解决方案不同,nidium不依赖WebView或原生操作系统组件。相反,它使用自己的高性能渲染引擎来绘制自定义组件。
  • modern-hta:在HTML应用程序中运行现代代码。
  • React Native Desktop:基于Qt框架的跨平台React Native桌面版。
  • NodeGui:由Qt5驱动,包括NodeGui-ReactVue NodeGuiSvelte-NodeGui
  • Astrodon:基于Tauri的Deno桌面应用框架(尚未完成)目前未维护
  • webview_deno:🌐 webview的Deno绑定,用于创建基于Web的桌面GUI的小型库。
  • DeskGap:捆绑Node.js运行时,并将HTML渲染留给操作系统的WebView。
  • NW.js:类似于Electron,提供源代码保护
  • Neutralinojs:将Chromium模块替换为用户的Web浏览器或内置浏览器组件。Node运行时被替换为轻量级Web服务器,暴露原生操作系统功能。
  • Proton Native:对桌面应用做了React Native对移动应用所做的事,基于libui-node
  • Graffiti:node.js和deno的HTML/CSS引擎。
  • Gluon:使用系统安装的普通浏览器(非WebView)和NodeJS,还支持Firefox。
  • Avernakis:Avernakis SDK的Node.js插件,使用TypeScript开发具有强大UI套件的现代桌面应用。
  • WelsonJS:使用JavaScript、HTML和CSS基于WSH/HTA或GTK构建Windows桌面应用。
  • Vuido:基于Vue.js创建原生桌面应用,使用libui-node
  • quasar:基于Vue.js的框架,让Web开发者能快速创建响应式网站/应用。

Julia

Kotlin

  • Compose Multiplatform:用于在多个平台上共享UI的声明式框架。基于Kotlin和Jetpack Compose。由JetBrains和开源贡献者开发。

Nim

  • nimx:Nim语言的桌面、移动和Web GUI框架。
  • NiGui:跨平台的桌面GUI工具包。
  • ui:libui的封装。可能成为Nim官方UI库的起点。
  • iup:IUP的封装。可能成为Nim官方UI库的起点。
  • SDL2:SDL 2.x的官方封装。
  • SDL2:SDL 2的封装。
  • Owlkettle:基于GTK的声明式用户界面框架。
  • wNim:Nim的Windows GUI框架。
  • gintro:基于GObject-Introspection的高级GTK3/GTK4绑定,适用于Nim。
  • nimqml:Nim编程语言的Qt QML绑定。
  • Neel:用于创建类似Electron的HTML/JS GUI应用的库。
  • nimview:基于Nim/Webview的辅助工具,用于使用Nim和HTML/CSS创建桌面/服务器应用。
  • webgui:基于Web技术的跨平台GUI框架,带有暗色主题。
  • fidget:基于Figma的UI库,适用于Nim,具有HTML和OpenGL后端。
  • nsciterhttps://sciter.com 的高级和低级Nim封装。
  • imgui:通过cimgui为Nim提供的ImGui绑定。
  • nimAntTweakBar:AntTweakBar的封装。
  • ggplotnim:ggplot2在Nim中的移植版本。
  • plotly:Nim的plotly封装。
  • graph:Nim中的基础绘图库。
  • nimetry:纯Nim实现的简单绘图库。
  • nimgraphviz:用于使用GraphViz和DOT创建图形的Nim库。

无代码/低代码

  • Kodular:远不止是一个现代无代码应用创建器
  • Bubble:无需编码即可设计、开发和发布生产级应用。无论你是初学者还是企业团队成员,Bubble都适合你。

Perl

  • Gtk:Gtk3 - Perl对gtk+工具包3.x系列的接口。
  • Prima:Prima - 一个Perl图形工具包。
  • Perl Executing Browser:Perl执行浏览器(PEB)是Perl 5桌面应用程序的HTML用户界面。它是一个C++ Qt 5应用程序,将本地Perl脚本作为子进程运行,无需服务器。受Electron和NW.js启发,PEB是另一种在桌面应用程序中重用Web技术的方式,使用Perl而不是Node.js来完成繁重的工作。
  • Tk:Perl/Tk是一个用于在Unix和Windows 95/NT上编写带有图形用户界面(GUI)的Perl程序的扩展。Tk最初是作为Tcl语言的扩展开发的,用于Unix上的X Window系统。
  • Tkx:Tkx - 又一个Tk接口。
  • Wx:Wx模块是wxWidgets(以前称为wxWindows)GUI工具包的封装。

PHP

  • NativePHP:NativePHP是一个新框架,用于使用PHP、HTML、CSS和JavaScript快速构建丰富的原生桌面应用程序。
  • PHP TkUI:使用PHP和Tcl/Tk构建原生桌面应用程序。

Python

  • fbs:Python和Qt非常适合编写轻量级桌面应用程序。但打包、安装程序、代码签名和自动更新却很麻烦。fbs解决了这些问题,为你节省数月的开发时间。
  • PyQt:PyQt是跨平台GUI工具包Qt的Python绑定,以Python插件形式实现。PyQt是由英国Riverbank Computing公司开发的自由软件。
  • PySide:PySide是跨平台GUI工具包Qt的Python绑定。
  • Kivy:开源Python应用开发框架。轻松构建和分发漂亮的Python跨平台GUI应用。Kivy可在Android、iOS、Linux、macOS和Windows上运行。
  • PyGUI:开发跨平台Python风格GUI API的项目。
  • Flet:用Python构建Flutter应用的最快方法。
  • Eel:一个小型Python库,用于创建简单的类Electron HTML/JS GUI应用。
  • wxPython:Python语言的跨平台GUI工具包。使用wxPython,软件开发人员可以为其Python应用创建真正的原生用户界面,几乎无需修改即可在Windows、Mac和Linux或其他类Unix系统上运行。
  • Tkinter:Tkinter模块或"Tk接口"是Python与Tk GUI工具包的标准接口。Tk和Tkinter在大多数Unix平台以及Windows系统上都可用。Tk本身不是Python的一部分;它由ActiveState维护。
  • pywebview:使用JavaScript、HTML和CSS为Python程序构建GUI。
  • Pysimplegui:PySimpleGUI使用Python快速轻松地创建图形用户界面(GUI)!
  • NiceGUI:NiceGUI是一个易于使用的基于Web的Python UI工具包,可以自托管并在更新源代码时自动刷新,提供丰富的UI小部件集。

R

  • gWidgets:在R中编写图形用户界面(GUI)的API。该包是跨平台(Linux/Mac/Windows)和跨工具包(RGtk2、qtbase、tcltk)的。
  • fGui:通过自动为函数参数创建小部件,快速为你创建的函数创建GUI界面。自动解析帮助例程,为这些参数提供上下文相关的帮助。该界面本质上是对一些Tcl/Tk例程的包装,以简化和促进GUI创建。更高级的Tcl/Tk例程/GUI对象可以被整合到界面中,以便更有经验的用户进行更大程度的定制。
  • Shiny:轻松创建数据科学Web应用,无需妥协

Rebol

  • Native Gui:R3 GUI的主要目标在先前文档中已明确说明。但为确保我们都保持同步:GUI旨在使简单的应用变得简单,复杂的应用成为可能。也就是说,你真的可以用几行GUI方言编写一个有用的应用,而一个全面的应用可能只需要几十页代码。

Red

  • Drawing:Draw是Red语言的一种方言(DSL),提供了一种简单的声明式方法来指定2D绘图操作。这些操作以有序命令列表(使用值块)表示,可以在运行时自由构建和更改。
  • Native GUI:Red/View(或简称View)组件是Red编程语言的图形系统。
  • Layout:VID代表可视化界面方言。其目的是在Red View引擎之上提供一种简单的方言(DSL)来描述图形用户界面。

Ruby

  • Glimmer:用于使用Ruby构建GUI应用的领域特定语言和元框架,支持各种GUI库以及Web绑定。
  • qtbindings:Qt的Ruby绑定。
  • tk:Tcl/Tk的Ruby绑定。
  • ruby-gnome:GNOME/GTK3的Ruby绑定。
  • JRubyFX:JavaFX的JRuby包装器。
  • traveling-ruby:将Ruby应用打包成可执行文件的运行时。

Rust

  • gtk-rs:GTK的Rust绑定。
  • revery-ui:快速、原生、跨平台的UI。
  • tauri:使用Web前端构建更小、更快、更安全的桌面应用程序。

V

  • ui:Isaiah 为 V 语言开发的跨平台 GUI 库。其语法灵感来源于 Java 的 Swing。
  • mui:V 语言的跨平台 UI 库
  • viup:跨平台 UI 库 IUP 的 V 语言封装。
  • vi-v:Vi-v 是 V 语言的可视化脚本 UI。它允许任何人无需extensive编程技能即可轻松创建自己的程序。
  • vxui:vxui 是一个跨平台桌面 UI 框架,使用浏览器作为屏幕,使用 V 语言作为后端。它依赖于 Websocket,无需 http/https,无需 web 服务器!

可视化编程

  • Blockly:Blockly 是 Google 开发的可视化编程编辑器,使用拖放块。它是驱动世界上最流行的编程教育程序的引擎。

📖 相关工作

  • Livecode:轻量级语言,具有原生 GUI、集成 IDE 和可视化界面构建器。
  • Positron:Electron 应用列表,用于避免使用它们,以及一些替代方案。
  • Awesome Alternatives to Electron Apps:Electron 是一个应用平台,在软件开发世界中像癌症一样蔓延,使你强大的计算机变得缓慢和卡顿。有时用 Electron 制作的应用很有用。这个列表包含了替代内存消耗大、不环保的 Electron 软件的好选择。
  • 浏览器引擎比较:浏览器引擎(也称为布局引擎或渲染引擎)是每个主要网络浏览器的核心软件组件。浏览器引擎的主要任务是将 HTML 文档和网页的其他资源转换为用户设备上的交互式可视化表示。除了"浏览器引擎"外,还常用两个相关术语:"布局引擎"和"渲染引擎"。理论上,布局和渲染(或"绘制")可以由不同的引擎处理。但实际上,这些组件紧密耦合,在浏览器引擎之外很少单独遇到。
  • Web 到桌面框架比较:这个仓库旨在客观比较多个允许我们将网络应用"转换"为桌面应用格式的框架。
  • Awesome-electronjs-hacking:关于 Electron.js(不)安全性的精选资源列表。
  • Qt:Qt(发音为"cute")是免费开源的跨平台软件,用于创建图形用户界面以及跨平台应用程序。
  • jscherer92/Quark:使用操作系统中的原生引擎创建浏览器技术应用程序。
  • Xojo:构建原生、跨平台应用程序。适用于桌面、Web、移动和树莓派的快速应用程序开发。
  • LambdaNative:LambdaNative 在 BSD 许可下免费提供,有extensive文档,托管在 GitHub 上。LambdaNative 可以从单一源代码构建在广泛平台上的原生应用程序,包括 iOS、Android、黑莓、OS X、Linux、Windows、OpenBSD、NetBSD、FreeBSD 和 OpenWrt。
  • REVERY:快速、原生、跨平台 UI。
  • 8th:8th 让你使用你喜欢的平台来编写和测试代码。只需一次点击,你就可以在任何 8th 支持的平台上生成适用于任何它支持的平台的可执行文件!
  • CEF:Chromium Embedded Framework (CEF)。一个用于将基于 Chromium 的浏览器嵌入其他应用程序的简单框架。
  • yue/yue:用于创建原生跨平台 GUI 应用的库。
  • Godot:Godot 引擎 - 多平台 2D 和 3D 游戏引擎。
  • HaxeUI:基于 Haxe 的跨平台(桌面、移动、网页)UI 框架
  • HTA/HTML 应用程序:HTML 应用程序或"HTA"是一种 Microsoft Windows 程序,其源代码由 HTML、动态 HTML 和 Internet Explorer 支持的一种或多种脚本语言(如 VBScript 或 JScript)组成。HTML 用于生成用户界面,脚本语言用于程序逻辑。HTA 在没有互联网浏览器安全模型限制的情况下执行;事实上,它作为"完全受信任"的应用程序执行。

📚 注意事项

如果你的应用不需要任何平台交互,可以考虑使用渐进式 Web 应用PWA

"渐进式 Web 应用可能无法取代所有类型的原生应用,但它们可以成为一些使用 Electron web 包装器技术编写的应用的可行替代品"。更多信息请参见: https://www.androidpolice.com/2020/05/27/google-chats-desktop-application-is-now-a-progressive-web-app/ 请看这里:BlazorElectronCGI

❤ 贡献

awesome-electron-alternatives 欢迎贡献,但我建议先创建一个问题或在评论中回复,让我知道你正在做什么,这样我们就不会互相覆盖。

请阅读 CONTRIBUTING.md 了解本项目的详细信息。如果你有任何问题,请随时提出问题。欢迎通过贡献来改进这个列表!

📑 许可证

  • 灵感来自 awesome 列表。
  • Electron-alternatives 由 sudhakar3697 和贡献者以 MIT 许可证授权。
  • 本项目的标志由 Electron-js 社区(品牌、开源项目)创作、创建或授权,但与本仓库没有直接关系。

🙌 贡献者

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号