《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的Tauri专为多平台部署构建优化、安全且独立于前端的应用程序框架。
Tauri 是一个框架,用于为所有主要桌面平台构建微小、极快的二进制文件。开发人员可以集成任何可编译为 HTML、JS 和 CSS 的前端框架来构建他们的用户界面。应用程序的后端是一个来自 rust 的二进制文件,带有一个前端可以与之交互的 API。
安全功能
- 安全模式的自定义协议
- 动态提前编译 (dAoT) 与功能性 tree-shaking
- 功能地址空间布局随机化
- 在运行时对函数名称和消息进行 OTP
- CSP 注入
开始使用
1.Microsoft Visual Studio C++ 构建
您将需要安装 Microsoft Visual Studio C++ 构建工具。
Tauri 严重依赖 WebView2 在 Windows 上呈现 Web 内容,因此您必须安装 WebView2。
macOS
您将需要安装 CLang 和 macOS 开发依赖项。为此,请在终端中运行以下命令:
xcode-select --install
要在 macOS 上安装 Rust,请打开终端并输入以下命令:
curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh
该命令会下载一个脚本并开始安装该rustup工具,该工具会安装最新的稳定版 Rust。系统可能会提示您输入密码。如果安装成功,将出现以下命令行:
Rust is installed now. Great!
确保重新启动终端以使更改生效。
Linux
您将需要安装几个系统依赖项,例如 C 编译器和webkit2gtk. 以下是一些流行发行版的命令:
sudo apt update
sudo apt install libwebkit2gtk-4.0-dev \
build-essential \
curl \
wget \
libssl-dev \
libgtk-3-dev \
libayatana-appindicator3-dev \
librsvg2-dev
要在 Linux 上安装 Rust,请打开终端并输入以下命令:
curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh
该命令会下载一个脚本并开始安装该rustup工具,该工具会安装最新的稳定版 Rust。系统可能会提示您输入密码。如果安装成功,将出现以下行:
Rust is installed now. Great!建桌面应用程
2.快速开始
HTML、CSS 和 JavaScript
Tauri 是一个使用任何前端框架和 Rust 核心构建桌面应用程序的框架。每个应用程序由两部分组成:
- 创建窗口并向这些窗口公开本机功能的 Rust 二进制文件
- 您选择的在窗口内生成用户界面的前端
构建新项目的最简单方法是create-tauri-app实用程序。它为普通的 HTML/CSS/JavaScript 和许多前端框架(如 React、Svelte 和 Yew)提供了自以为是的模板。
sh <(curl https://create.tauri.app/sh)
这是我们将要构建的内容的预览:
我们将使用 HTML 文件创建一个非常小的 UI。不过,为了保持整洁,让我们为它创建一个单独的文件夹:
mkdir ui
接下来,在该文件夹中创建一个index.html包含以下内容的文件:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
</head>
<body>
<h1>Welcome from Tauri!</h1>
</body>
</html>
我们将在本指南中保持 UI 最小化,但您可以随意尝试更多内容或通过 CSS 添加样式。
应用程序调试
有了 Tauri 中的所有移动部件,您可能会遇到需要调试的问题。打印错误详细信息的位置有很多,并且 Tauri 包含一些工具,可以使调试过程更加直接。
Rust
查找错误的第一个地方是 Rust 控制台。这是在您运行的终端中,例如tauri dev. 您可以使用以下代码从 Rust 文件中将某些内容打印到该控制台:
println!("Message from Rust: {}", msg);
有时你的 Rust 代码可能有错误,Rust 编译器可以为你提供大量信息。例如,如果tauri dev崩溃,您可以在 Linux 和 macOS 上像这样重新运行它:
RUST_BACKTRACE=1 tauri dev
或在 Windows 上像这样:
set RUST_BACKTRACE=1
tauri dev
此命令为您提供细粒度的堆栈跟踪。一般来说,Rust 编译器会为您提供有关问题的详细信息,例如:
error[E0425]: cannot find value `sun` in this scope
--> src/main.rs:11:5
|
11 | sun += i.to_string().parse::<u64>().unwrap();
| ^^^ help: a local variable with a similar name exists: `sum`
error: aborting due to previous error
For more information about this error, try `rustc --explain E0425`.
主要语言
- 用于 CLI 的 Rust
- 与 Rust API 的 ECMAScript 绑定,用 typescript 编写
- Rust 用于绑定,API 的 rust 方面,线束
- Tauri 后端的 Rust 插件
—END—
开源协议:Apache-2.0
开源地址:https://github.com/tauri-apps/tauri