最近,在跨平台开发领域备受关注的框架
Tauri
发布了 2.0 版本,我们一起来看看都有哪些值得关注的更新吧。
Tauri
是一个用于构建轻量级、快速二进制文件的框架,支持所有主流的桌面平台(macOS、Linux、Windows)和移动平台(iOS、Android)。开发者可以将任意前端框架(如 HTML、JavaScript 和 CSS)与 Rust、Swift 和 Kotlin 等语言编写的后台逻辑结合起来,创建用户体验出色的应用程序。
在
Tauri
应用中,前端部分使用我们最熟悉的 Web 前端技术栈,运行在操作系统的
WebView
中,并与主要用 Rust 编写的应用核心进行通信。开发者无需具备
Rust、Swift
或
Kotlin
的编程技能,因为
Tauri
已经提供了丰富的 JavaScript API。
超强 AI 背景移除:在线批量处理,支持 WebGPU 加速,无需登录,可无限次免费使用!
你应该在什么时候使用
Tauri
?
如果你符合以下任何一项需求,那么
Tauri
可能就是你的最佳选择:
-
-
希望在不同平台(如
Windows、macOS、Linux、Android、iOS
)上尽可能多地接触用户?
-
-
是一名 Rust 开发者并希望编写外观漂亮、且可以用 Rust 实现的应用?
-
拥有一个现有的
Web
开发团队并希望以低前期投资扩展到原生应用市场?
-
拥有一个现有的 Rust 开发团队并希望所有代码都用 Rust 编写?
Tauri
的受欢迎程度
截至写作时,
Tauri
在 GitHub 上有约 4878 个
Pull Request
和 3570 个已关闭
Issues
,还有大约 1000 次讨论。我们的 Discord 服务器目前有约 17700 名成员,大家在这里互相支持、提出问题或者讨论
Tauri
相关的开发话题。我们对社区的积极和支持表示由衷的感谢。
我们还维护了一个
Tauri
相关项目、应用、插件和指南的精选列表——
awesome-tauri
,如果你想获得灵感,可以查看这里的内容,并添加自己的项目。
https://github.com/tauri-apps/awesome-tauri?tab=readme-ov-file#applications
从
Tauri 1.0
到
2.0
的历程
在 2022 年 6 月,我们发布了
Tauri 1.0
,极大地影响了桌面操作系统市场以及跨平台应用的构建方式。到了 2022 年底,我们发布了
2.0
的初始
alpha
版本以获得初步反馈,并测试移动交互的定义方式。在接下来的两年中,我们不断地公开调整和优化
Tauri
的架构,最终在今年二月发布了
beta
版本,并与外部安全审计公司合作,检查我们的决策和架构变化。
今年八月,我们发布了
2.0
的候选版本,目的是解决重大 bug 并从实际使用中获得更多反馈。最终,在大量修复和文档改进后,我们在今天正式发布了
Tauri 2.0
的稳定版本。
Tauri
的成功得益于众多贡献者,尤其是 Lucas,多年来他持续不断地提供代码更改。此外,还有 Amr、Fabian-Lars、Tony、Chip、Jason、YuWei、icb、Simon、Oliver Lemasle 以及许多其他贡献者。
下面我们来看看
Tauri 2.0
的主要亮点。
移动端支持
Tauri 2.0 引入了对 iOS 和 Android 的原生支持。这一新增功能大大扩展了 Tauri 的应用场景,使开发者可以使用全新的移动端插件系统,将应用逻辑暴露给 Tauri 前端。这意味着开发者不仅可以在桌面平台上享受 Tauri 带来的便利,还可以在移动平台上无缝重用已有的逻辑代码。
更好的入门体验
Tauri 2.0
新推出了
create-tauri-app
项目,让开发者可以快速从零开始构建一个
Tauri
应用,从而节省时间。
# 可用的命令如下:
sh npm create tauri-app@latest
yarn create tauri-app
pnpm create tauri-app
bun create tauri-app
cargo install create-tauri-app --locked
cargo create-tauri-app
热模块替换(
HMR
)
Tauri 2.0 扩展了热模块替换功能,使其支持移动设备和仿真器,开发者可以在不需重新构建整个应用的情况下立即预览更改。
高级插件系统
Tauri 2.0 的插件系统完全重构,提供更强的扩展性和灵活性。将许多原有功能转移到官方插件中,使社区更容易上手,同时加速新功能的实现。插件系统支持开发者自行编写或复用用 Swift 或 Kotlin 编写的原生代码,并通过注解直接暴露给
Tauri
前端。以下是一些重要插件示例:
新的权限系统
Tauri 2.0
引入了一个全新的权限系统,取代了之前的允许列表系统。新系统使用权限、范围和能力来创建灵活且易于使用的访问控制系统。这不仅覆盖
Tauri
的核心 API,还支持应用和插件开发者实现自己的访问控制。
[[permission]]
identifier = "my-identifier"
description = "This describes the impact and more."
commands.allow = [
"read_file"
]
[[scope.allow]]
my-scope = "$HOME/*"
[[scope.deny]]
my-scope = "$HOME/secret"
内部通信(IPC)重写
Tauri 2.0 完全重写了内部通信(IPC)层,大大提升了数据传输效率:
-
原始负载(Raw Payloads)
:支持大数据传输,使得前端与后端的通信更加高效。