首页 > 其他分享 >Electron慢,QT贵,有没有第三选择?试试Tauri

Electron慢,QT贵,有没有第三选择?试试Tauri

时间:2024-09-28 18:21:42浏览次数:8  
标签:桌面 Qt Tauri Electron 开发者 Rust QT

桌面程序开发页面也面临着前端技术栈的选择,Electron、QT和Tauri算是各有千秋,Electron在处理大量文件时候,非常耗费资源,QT倒是没有这方面问题,但是收费忒贵了,Tauri作为后起之秀,有无弯道超车的机会呢?

一、electron、qd和tauri的由来和基本信息

1. Electron:

- 由来:Electron 最初由GitHub开发,最早被称为Atom Shell,是为了支持GitHub的文本编辑器Atom而开发的。后来,GitHub决定将其开源,成为一个独立的桌面应用程序开发框架。

- 基本信息:Electron 使用Chromium和Node.js作为核心技术,允许开发人员使用HTML、CSS和JavaScript等Web技术构建跨平台的桌面应用程序。它提供了丰富的API和工具,使得开发者可以快速地将Web应用程序转换为桌面应用程序。


 


 

2. Qt:

- 由来:Qt 最早由挪威的Trolltech公司开发,并于1995年发布。后来,Trolltech公司被诺基亚收购,Qt成为了诺基亚的产品。现在,Qt由Digia公司开发和维护。

- 基本信息:Qt 是一个跨平台的C++应用程序开发框架,提供了丰富的GUI组件和工具,用于构建高性能的桌面应用程序。它支持多种操作系统,包括Windows、macOS和Linux等。


 


 

3. Tauri:

- 由来:Tauri 是一个相对较新的桌面应用程序开发工具,它由开发者编写的Rust语言框架,旨在提供更好的性能和安全性。

- 基本信息:Tauri 结合了Web技术和Rust语言的优势,允许开发者使用HTML、CSS和JavaScript等Web技术与Rust语言结合,用于构建跨平台的桌面应用程序。它提供了丰富的API和工具,使得开发者可以利用Rust的性能和安全性特性来构建桌面应用程序。


 


 


二、三者的技术栈差异

当涉及到桌面应用程序开发框架时,技术栈是非常重要的。以下是 Electron、Qt 和 Tauri 的技术栈差异:

1. Electron:

- 技术栈:Electron 使用了Chromium作为其渲染引擎,同时使用了Node.js作为后端引擎。开发者可以使用HTML、CSS和JavaScript等Web前端技术进行界面设计和交互,而后端逻辑则可以使用JavaScript或Node.js进行开发。Electron 提供了丰富的API,以便于开发者能够访问底层操作系统的功能。


 


 

2. Qt:

- 技术栈:Qt 使用C++作为主要的编程语言,同时也提供了对Python、JavaScript等语言的支持。Qt 提供了丰富的GUI组件和工具,用于构建跨平台的桌面应用程序。开发者可以使用Qt的API和工具,通过C++或其他支持的语言来开发应用程序的前端和后端逻辑。


 


 

3. Tauri:

- 技术栈:Tauri 结合了Web技术和Rust语言的优势。开发者可以使用HTML、CSS和JavaScript等Web技术进行界面设计和交互,同时使用Rust语言编写后端逻辑。Tauri 提供了Rust的强大性能和安全性,以及与Web技术的结合,使得开发者可以构建跨平台的桌面应用程序。


 


 

Electron 使用了Chromium和Node.js,Qt 使用C++和其他语言,而Tauri 结合了Web技术和Rust语言。每种框架的技术栈都有其独特的优势和适用场景,开发者可以根据项目需求和自身技术栈选择合适的框架。


三、对本地文件读取的异同点

对于本地文件读取和管理,三种桌面应用程序开发框架(Electron、Qt 和 Tauri)有以下异同点:

1. Electron:

- 异同点:Electron 提供了丰富的Node.js API,使得开发者可以轻松地进行本地文件的读取和管理。开发者可以使用Node.js的文件系统模块(fs)来进行文件的读取、写入、删除等操作。此外,Electron还提供了对原生文件对话框的支持,开发者可以使用对话框来让用户选择文件或文件夹。

- 异同点:Electron 的文件读取和管理主要依赖于Node.js的文件系统模块,开发者可以使用JavaScript或Node.js来进行文件操作。


 


 

2. Qt:

- 异同点:Qt 提供了丰富的文件操作类和函数,使得开发者可以方便地进行本地文件的读取和管理。Qt 的文件操作类包括 QFile、QDir 等,开发者可以使用这些类来进行文件的读取、写入、删除等操作。Qt 还提供了对话框和文件选择器,开发者可以使用这些组件来进行文件的选择和管理。

- 异同点:Qt 的文件读取和管理主要依赖于C++或其他支持的语言,开发者可以使用C++或其他支持的语言来进行文件操作。


 


 

3. Tauri:

- 异同点:Tauri 结合了Web技术和Rust语言的优势,在文件读取和管理方面,开发者可以使用Rust语言的文件操作库来进行本地文件的读取和管理。同时,Tauri还提供了与Web技术结合的能力,开发者可以使用JavaScript来进行文件操作。

- 异同点:Tauri 的文件读取和管理主要依赖于Rust语言的文件操作库,开发者可以使用Rust或JavaScript来进行文件操作。

这三种桌面应用程序开发框架都提供了丰富的API和工具,使得开发者可以方便地进行本地文件的读取和管理。开发者可以根据自身的技术栈和项目需求选择合适的框架来进行文件操作。


四、electron慢是挥之不去的阴影

Electron 的性能相对较慢主要与其技术栈和架构有关。Electron 是基于Chromium和Node.js构建的跨平台桌面应用程序开发框架,其技术栈和架构导致了一些性能上的瓶颈和限制,主要包括以下几个方面:


 


 

1. 内存占用:

Electron 应用程序通常会占用较高的内存,因为每个应用都需要包含完整的Chromium浏览器和Node.js运行时环境。这会导致资源占用较大,尤其是对于一些较为简单的应用来说,内存占用可能显得过高。

2. 启动时间:

由于 Electron 应用程序需要启动Chromium浏览器和Node.js运行时环境,因此启动时间相对较长。这对于一些对启动速度要求较高的应用来说可能会有影响。

3. 跨平台兼容性:

为了实现跨平台的特性,Electron 需要在不同的操作系统上运行,这可能导致一些性能上的损失,因为需要兼容不同的操作系统环境。


 


 

虽然 Electron 的性能相对较慢,但它也有其优势,比如快速开发跨平台桌面应用、丰富的社区支持和成熟的生态系统等。对于一些对性能要求不是特别高的应用来说,Electron 仍然是一个非常实用的桌面应用开发框架。如果对性能要求较高的应用,可能需要考虑其他桌面应用开发技术栈。


五、Tauri相对于electron和qt的优劣势

Tauri 相对于 Electron 和 Qt 具有以下优劣势:

优势:

1. 性能:Tauri 使用 Rust 语言编写后端逻辑,Rust 以其出色的性能和安全性而闻名。相比之下,Electron 使用了 Node.js,而 Qt 使用了 C++,Tauri 的性能可能会更好一些,尤其是对于需要处理大量数据或对性能要求较高的应用程序。

2. 安全性:Rust 是一种内存安全的系统级编程语言,能够在编译期间捕获许多常见的安全漏洞和内存错误。因此,使用 Rust 编写后端逻辑的 Tauri 应用程序可能比 Electron 和 Qt 应用程序更容易避免一些常见的安全漏洞和内存错误。

3. 跨平台:Tauri 具有与 Electron 类似的跨平台能力,可以在 Windows、macOS 和 Linux 等操作系统上运行。同时,Tauri 结合了 Web 技术,使得开发者可以使用 HTML、CSS 和 JavaScript 来构建界面,这也使得 Tauri 在跨平台开发方面具有一定优势。

劣势:

1. 生态系统和社区支持:相比于 Electron 和 Qt,Tauri 的生态系统和社区支持相对较小。这意味着在使用 Tauri 进行开发时,可能会面临更少的第三方库和工具可用,以及更少的社区支持和文档资源。

2. 学习曲线:Rust 是一种相对较新的编程语言,相比之下,JavaScript 和 C++ 的开发者可能更容易找到相关的学习资源和支持。因此,对于没有 Rust 经验的开发者来说,学习和使用 Tauri 可能需要一定的时间和精力。

Tauri 在性能和安全性方面具有一定优势,尤其适合对性能和安全性要求较高的应用程序。然而,相对较小的生态系统和社区支持,以及相对较高的学习曲线可能会对开发者的选择产生影响。开发者可以根据项目需求和自身技术栈来选择合适的框架。

标签:桌面,Qt,Tauri,Electron,开发者,Rust,QT
From: https://blog.csdn.net/m0_57344393/article/details/142482283

相关文章

  • 项目实战:Qt+OSG爆破动力学仿真三维引擎测试工具v1.1.0(加载.K模型,子弹轨迹模拟动画,支持
    若该文为原创文章,转载请注明出处本文章博客地址:https://hpzwl.blog.csdn.net/article/details/142454993长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…Qt开发专栏:项目实战......
  • Tauri2.0+Vite5聊天室|vue3+tauri2+element-plus仿微信|tauri聊天应用
    原创tauri2.0+vue3+pinai2仿QQ/微信客户端聊天Exe程序TauriWinChat。tauri2-vue3-winchat自研vite5+tauri2.0+vue3setup+element-plus跨平台仿QQ|微信桌面端聊天软件。全新封装tauri2多开窗口管理、自定义圆角阴影窗体。实现聊天、通讯录、收藏、我的、朋友圈/小视频等模块。......
  • 【Qt】创建一个新项目 &&解析项目代码
    这里写目录标题1.QtCreator创建项目2.项目代码解析2.1main.cpp2.2widget.h2.3widget.cpp2.4.pro工程文件3.中间文件1.QtCreator创建项目首先我们要创建一个项目点击左上角的文件创建新文件选择Application中的QtWidgetsApplication方式进行创建新建项......
  • 【Qt】编写第一个Qt程序 && 对象树 && 内存泄漏问题探讨
    编写第一个Qt程序1.使用图形化界面生成2.使用代码生成3.对象树3.1什么是对象树3.2验证对象树4.解决编码问题1.使用图形化界面生成创建好一个项目后,我们可以点击widget.ui进入图形化界面设计,可以直接通过拖拽的方式进行添加。通过拖拽的方式进行设计此......
  • Qt源码编译-Ubuntu平台
    Qt源码编译-Ubuntu平台Qt官网已取消了Qt5.15版本二进制安装包。如果要安装Qt5.15需要下载源码自行编译安装或使用商业授权版本。Qt是一个功能强大的跨平台开发框架,支持从嵌入式系统到桌面应用程序的开发。如果你希望在Ubuntu平台上从源码编译Qt,这篇教程将带你一步步......
  • Qt面试题
    什么是Qt的元对象系统?点击查看代码Qt的元对象系统是Qt框架中一个核心的组成部分,提供了一种机制来拓展C++的功能,Qt的元对象系统(Meta-ObiectSystem)提供了对象之间通信的信号与槽机制、运行时类型信息和动态属性系统。元对象系统由以下三个基础组成。1.QObiect类是所有......
  • PyQt5 使用 QFrame 实现页面类抽屉式的进入与退出的动画
    PyQt5使用QFrame实现页面类抽屉式的进入与退出的动画当多个页面切换,但是又不想每个页面里的内容只是简单的出现与消失,则可以使用这个QPropertyAnimation动画代码结构本文中全部代码全在test_QFrame_Animation.py这一个文件中编码,步骤中有变动的地方会注释标注,无改动的不会重......
  • Qt - QObject设置对象名称和属性
    作用用来作为id选择器和属性选择器,来设置样式setObjectName方法用来设置对象的名字,不同对象可以重复label=QLabel()label.setObjectName("label")objectName方法获取对象的名字QStringstrobj=this->objectName();qDebug()<<"strobj="<<strobj;setProperty方法......
  • QT 获取视频帧Opencv获取清晰度
    先展示结果:1.获取摄像头的分辨率mResSize.clear();mResSize=camera_->supportedViewfinderResolutions();ui->comboBox_resulation->clear();inti=0;foreach(QSizemsize,mResSize){qDebug()<<msize;ui->comboBox_re......
  • QT读写配置ini文件
    一、概述Qt中常见的配置文件为(.ini)文件,其中ini是InitializationFile的缩写,即初始化文件。配置文件的格式如下所示:模板:点击查看代码[节名]key1=value1key2=value2示例:[SysParam]hostIP=192.168.1.100hostPort=5200Qt中使用QSettings类来完成读写ini文件的操作。......