Tauri学习-1.简介
简介
Tauri 是一个框架,用于为所有主要桌面平台构建微小、极快的二进制文件。开发人员可以集成任何可编译为 HTML、JS 和 CSS 的前端框架来构建他们的用户界面。应用程序的后端是一个来自 rust 的二进制文件,带有一个前端可以与之交互的 API。
Tauri 应用程序中的用户界面目前tao
在 macOS 和 Windows 上用作窗口处理库,并gtk
在 Linux 上通过Tauri 团队孵化和维护的WRY,它为系统 webview(以及其他好东西,如菜单和任务栏)创建了统一的界面,在 macOS 上利用 WebKit,在 Windows 上利用 WebView2,在 Linux 上利用 WebKitGTK。
平台
Tauri 目前支持以下平台的开发和分发:
平台 | 版本 |
---|---|
Windows视窗 | 7 及以上 |
macOS苹果系统 | 10.15 及以上 |
Linux | 见下文 |
iOS/iPadOS(即将推出) | |
Android安卓(即将推出) |
Linux 支持
如需开发Tauri 应用程序,请参阅tauri.app 上的入门指南。
对于运行Tauri 应用程序,我们支持以下配置(这些配置会自动添加为 .deb 的依赖项并与 AppImage 捆绑在一起,因此您的用户无需手动安装它们):
- 安装了以下软件包的 Debian(Ubuntu 18.04 及更高版本或同等版本):
libwebkit2gtk-4.0-37
,libgtk-3-0
,libayatana-appindicator3-1
1
- Arch 安装了以下软件包:
webkit2gtk
,gtk3
,libayatana-appindicator
1
- 安装了以下软件包的 Fedora(最新 2 个版本):
webkit2gtk3
,gtk3
,libappindicator-gtk3
1
1.appindicator
仅当使用系统托盘时才需要
应用程序包
- 应用程序图标
- 在 macOS 上构建(.app、.dmg)
- 在 Linux 上构建(.deb、AppImage)
- 在 Windows 上构建(.exe、.msi)
- Copy Buffer复制缓冲区
- Device Notifications (toast)设备通知(toast)
- Self Updater自我更新器
- 应用签名
- Frameless Mode无框模式
- Transparent Mode透明模式
- Multiwindow Mode多窗口模式
- Tray托盘
- deeplink RPC (in progress)深度链接 RPC(进行中)
- One-Time commands (coming soon)一次性命令(即将推出)
安全功能
- localhost-free 本地主机免费(🔥)
- custom protocol for secure mode 安全模式的自定义协议
- Dynamic ahead of Time Compilation (dAoT) with functional tree-shaking 动态提前编译 (dAoT) 与功能性 tree-shaking
- functional Address Space Layout Randomization 功能地址空间布局随机化
- OTP salting of function names and messages at runtime 在运行时对函数名称和消息进行 OTP 加盐
- CSP Injection CSP 注入
实用程序
- 用于为所有平台创建二进制文件的 GH 操作
- VS 代码扩展
- Tauri 核心插件
- 从命令行自动更新核心依赖项
- 基于 Rust 的 CLI
Tauri 和 Electron 的比较
细节 | Tauri | Electron |
---|---|---|
安装程序大小 Linux | 3.1 MB | 52.1 MB |
内存消耗 Linux | 180 MB | 462 MB |
启动时间 Linux | 0.39s | 0.80s |
接口服务提供者 | WRY | Chromium |
后端绑定 | rust | Node.js (ECMAScript) |
底层引擎 | rust | V8 (C/C++) |
FLOSS自由/开源软件 | 是的 | 不 |
多线程 | 是的 | 是的 |
字节码交付 | 是的 | 不 |
多个窗口 | 是的 | 是的 |
自动更新程序 | 是的 | 是的1 |
自定义应用程序图标 | 是的 | 是的 |
Windows 二进制 | 是的 | 是的 |
macOS 二进制 | 是的 | 是的 |
Linux 二进制 | 是的 | 是的 |
iOS 二进制 | 很快 | 不 |
安卓二进制 | 很快 | 不 |
桌面托盘 | 是的 | 是的 |
Sidecar二进制文件2 | 是的 | 不 |
注:
- Electron 在 Linux 上没有本机自动更新程序,但由 electron-packager 提供
- Sidecar原意是摩托车的边车,用到软件架构中,就是Sidecar应用是连接到父应用,并为其扩展或增强功能。Sidecar应用于主应用程序松耦合。
发展
Tauri 是一个由许多运动部件组成的系统:
基础设施
- 用于代码管理的 Git
- 用于项目管理的 GitHub
- CI 和 CD 的 GitHub 操作
- 不和谐的讨论
- Netlify 托管的文档网站
- DigitalOcean Meilisearch 实例
主要运行时
- 用于运行 CLI 的 Node.js(deno 和 pure rust 在路线图上)
- Cargo 用于测试、运行开发服务、构建二进制文件以及作为 webview 的运行时工具
主要语言
- 用于 CLI 的 Rust
- 与 Rust API 的 ECMAScript 绑定,用 typescript 编写
- Rust 用于绑定,API 的 rust 方面,线束
- Tauri 后端的 Rust 插件
操作系统
Tauri 内核可以在 Mac、Linux 和 Windows 上开发,但鼓励使用最新的操作系统并为新操作系统构建工具。