tauri 开发

简介: tauri 开发

1、介绍

Tauri 是一个框架,用于为所有主要桌面平台构建微小、极快的二进制文件。开发人员可以集成任何可编译为 HTML、JS 和 CSS 的前端框架来构建他们的用户界面。应用程序的后端是一个来自 rust 的二进制文件,带有一个前端可以与之交互的 API。

Tauri 应用程序中的用户界面目前tao在 macOS 和 Windows 上用作窗口处理库,gtk在 Linux 上通过Tauri 团队孵化和维护的WRY,它创建了系统 web 视图(以及其他好东西,如菜单和任务栏)的统一界面,在 macOS 上利用 WebKit,在 Windows 上利用 WebView2,在 Linux 上利用 WebKitGTK。

2、支持平台

平台 版本
Windows 7 及以上
macOS 10.15 及以上
Linux 见下文
iOS/iPadOS 即将退出
安卓 即将推出

如需开发Tauri 应用程序,请参阅tauri.app 上的入门指南

对于运行Tauri 应用程序,我们支持以下配置(这些配置会自动添加为 .deb 的依赖项并与 AppImage 捆绑在一起,因此您的用户无需手动安装它们):

  • 安装了以下软件包的 Debian(Ubuntu 18.04 及更高版本或同等版本):
libwebkit2gtk-4.0-37, libgtk-3-0, libayatana-appindicator3-11
  • Arch 安装了以下软件包:
webkit2gtk, gtk3, libayatana-appindicator1
  • 安装了以下软件包的 Fedora(最新 2 个版本):
webkit2gtk3, gtk3, libappindicator-gtk31

3、安全功能

  • 本地主机免费
  • 安全模式的自定义协议
  • 动态提前编译 (dAoT) 与功能性 tree-shaking
  • 功能地址空间布局随机化
  • 在运行时对函数名称和消息进行 OTP 加盐
  • CSP 注入

4、Tauri 和 Electron 的比较(官方)

细节 Tauri Electron
安装程序 Linux 3.1MB 52.1MB
内存消耗 Linux 180MB 462MB
启动时间 Linux 0.39s 0.80s
界面服务提供 WRY Chromium
后端绑定 Rust Node.js (ECMAScript)
底层引擎 Rust V8 (C/C++)
FLOSS(自由/开源软件) 是的 不是
多线程 是的 是的
字节码交付 是的 不是
多窗口 是的 是的
自动更新 是的 是的1
自定义应用程序图标 是的 是的
Windows Binary 是的 是的
macOS Binary 是的 是的
Linux Binary 是的 是的
iOS Binary 很快 No
Android Binary 很快 No
桌面托盘 是的 是的
Sidecar Binaries 是的 No

1. Electron 在 Linux 上没有本机自动更新程序,但由 electron-packager 提供

打包后程序大小对比(在Macos系统下)

5、安装前提条件-macOS

1、要安装 CLang 和 macOS 开发依赖项。为此,请在终端中运行以下命令:

xcode-select --install

2、要在 macOS 上安装 Rust,请打开终端并输入以下命令

curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh

在窗口中出现以下提示,代表安装成功

Rust is installed now. Great!

5、安装前提条件-Windows

1、Microsoft Visual Studio C++ 构建

您将需要安装 Microsoft Visual Studio C++ 构建工具。最简单的方法是安装Build Tools for Visual Studio 2022。当询问要安装哪些工作负载时,请确保选择“C++ 构建工具”和 Windows 10 SDK。

2、Tauri 严重依赖 WebView2 在 Windows 上呈现 Web 内容,因此您必须安装 WebView2。最简单的方法是从Microsoft 网站下载并运行 Evergreen Bootstrapper 。

提示:WebView2 预装在 Windows 11 中

3、安装Rust,地址:https://www.rust-lang.org/tools/install

6、开始创建tauri应用程序

npm create tauri-app

1、输入app的名字,不输入默认为tauri-app,直接回车。

2、输入窗口的标题,默认直接回车:

3、前端UI模板搭配选择:

4、是否添加tauri-apps/api包的依赖。

5、选择vite的模板

6、项目初始化完成,依赖已安装完成。

7、进入tauri-app目录,运行命令:

npm run tauri dev

在浏览器中,打开链接地址:http://localhost:5173/

然后桌面端,程序没有打包,因为Rustde 第三方包都集中在crates.io网站上面,因为镜像问题,需要更换成国内镜像。

在 $HOME/.cargo/config 中添加如下内容:

# 放到 `$HOME/.cargo/config` 文件中
[source.crates-io]
#registry = "https://github.com/rust-lang/crates.io-index"
# 替换成你偏好的镜像源
replace-with = 'ustc'
#replace-with = 'sjtu'
# 清华大学
[source.tuna]
registry = "https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git"
# 中国科学技术大学
[source.ustc]
registry = "git://mirrors.ustc.edu.cn/crates.io-index"
# 上海交通大学
[source.sjtu]
registry = "https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index"
# rustcc社区
[source.rustcc]
registry = "git://crates.rustcc.cn/crates.io-index"

配置完成,重新运行命令,会看完整个编译结束。

出现桌面端的界面

7、进行桌面打包

npm run tauri build

在target目录下面,生成对应桌面端app的文件,原文件大小9M,如下图所示:

相关文章
|
14天前
|
Dart Android开发
鸿蒙Flutter实战:05-使用第三方插件
在鸿蒙Flutter开发中,使用原生功能需借助插件。可自编原生ArkTS代码或采用第三方插件。自编代码通过PlatformView或MethodChannel实现;第三方插件需确保适配鸿蒙,否则须配置替代插件或自行开发。
48 1
鸿蒙Flutter实战:05-使用第三方插件
|
20天前
|
存储 前端开发 安全
Tauri 开发实践 — Tauri 原生能力
本文介绍了如何使用 Tauri 框架构建桌面应用,并详细解释了 Tauri 提供的原生能力,包括文件系统访问、系统托盘、本地消息通知等。文章通过一个具体的文件下载示例展示了如何配置 Tauri 来使用文件系统相关的原生能力,并提供了完整的代码实现。最后,文章还提供了 Github 源码链接,方便读者进一步学习和参考。
54 1
Tauri 开发实践 — Tauri 原生能力
|
20天前
|
Rust 前端开发 JavaScript
Tauri 开发实践 — Tauri 日志记录功能开发
本文介绍了如何为 Tauri 应用配置日志记录。Tauri 是一个利用 Web 技术构建桌面应用的框架。文章详细说明了如何在 Rust 和 JavaScript 代码中设置和集成日志记录,并控制日志输出。通过添加 `log` crate 和 Tauri 日志插件,可以轻松实现多平台日志记录,包括控制台输出、Webview 控制台和日志文件。文章还展示了如何调整日志级别以优化输出内容。配置完成后,日志记录功能将显著提升开发体验和程序稳定性。
52 1
Tauri 开发实践 — Tauri 日志记录功能开发
|
20天前
|
JSON 自然语言处理 数据格式
Tauri 开发实践 — Tauri 自定义多语言菜单开发
本文介绍了如何在 Tauri 应用中实现自定义菜单并支持多语言。首先,通过 `Translator` 类加载和解析多语言 JSON 文件,实现简单的翻译功能。接着,创建包含文件、编辑和窗口子菜单的基本菜单结构,并根据当前语言进行翻译。最后,在主函数中读取语言设置,创建菜单并处理菜单事件,确保应用的国际化和用户体验。源码可在 GitHub 上查看。
56 2
|
25天前
|
Android开发 iOS开发 容器
鸿蒙harmonyos next flutter混合开发之开发FFI plugin
鸿蒙harmonyos next flutter混合开发之开发FFI plugin
|
20天前
|
存储 Rust 前端开发
Tauri 开发实践 — Tauri 配置介绍
本文首发于微信公众号“前端徐徐”,主要讲解`package.json`、`Cargo.toml`及`tauri.conf.json`三个文件的配置。其中,`tauri.conf.json`最为复杂,涉及众多配置项。`package.json`用于配置前端依赖与脚本;`Cargo.toml`用于声明Rust应用依赖;`tauri.conf.json`则管理前端资源、API白名单等。这些配置对于Tauri应用的开发至关重要。
40 5
|
20天前
|
Rust 前端开发 JavaScript
Tauri 开发实践— Tauri 怎么样
Tauri 是一个用于构建高效、小型二进制文件的框架,适用于所有主流桌面及移动平台。开发人员可以利用任何可编译为 HTML、JavaScript 和 CSS 的前端框架构建应用,并借助 Rust、Swift 或 Kotlin 进行后端开发。Tauri 采用三层架构,包括 tauri-app、WRY(跨平台 Webview 库)和 TAO(跨平台窗口管理器)。相较于 Electron,Tauri 使用系统内置浏览器引擎执行 Web APP,具有更小的资源占用和更高性能。详情见:[Tauri 官网](https://tauri.app/)。
86 0
Tauri 开发实践— Tauri 怎么样
|
20天前
|
Rust 前端开发 iOS开发
Tauri 开发实践— Tauri 工程搭建
本文首发于微信公众号“前端徐徐”,介绍了在 macOS 环境下使用 Rust 和 Tauri 构建跨平台桌面应用的过程。首先需安装 Rust 及系统依赖,参考链接:[Rust 入门](https://www.rust-lang.org/zh-CN/learn/get-started) 和 [Tauri 前置条件](https://tauri.app/zh-cn/v1/guides/getting-started/prerequisites)。
31 0
Tauri 开发实践— Tauri 工程搭建
|
20天前
|
自然语言处理 JavaScript 前端开发
Tauri 开发实践 — Tauri 主题&多语言设置开发
本文首发于微信公众号「前端徐徐」,介绍了在 Tauri 应用中实现窗口主题设置与多语言支持的方法。主题设置包括静态和动态两种方式,前者在应用初始化时设定,后者允许运行时更改。文章详细描述了通过 tauri-plugin-theme 插件实现动态主题变更的过程,并提供了代码示例。对于多语言支持,文章介绍了使用 i18next 进行多语言文件初始化及切换的方法。最后,提供了完整的源码链接,帮助读者更好地理解和实践。
43 4
|
3月前
|
Rust 资源调度 内存技术
Tauri——如何创建一个tauri项目
Tauri——如何创建一个tauri项目
45 4