Tauri学习-1.简介

简介

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

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

注:Tao 是一个跨平台的应用程序窗口创建和事件循环管理库。

平台

Tauri 目前支持以下平台的开发和分发:

平台 版本
Windows视窗 7 及以上
macOS苹果系统 10.15 及以上
Linux 见下文
iOS/iPadOS(即将推出)  
Android安卓(即将推出)  

Linux 支持

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

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

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

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 是的

注:

  1. Electron 在 Linux 上没有本机自动更新程序,但由 electron-packager 提供
  2. Sidecar原意是摩托车的边车,用到软件架构中,就是Sidecar应用是连接到父应用,并为其扩展或增强功能。Sidecar应用于主应用程序松耦合。

发展

Tauri 是一个由许多运动部件组成的系统:

基础设施

  • 用于代码管理的 Git
  • 用于项目管理的 GitHub
  • CI 和 CD 的 GitHub 操作
  • 不和谐的讨论
  • Netlify 托管的文档网站
  • DigitalOcean Meil​​isearch 实例

主要运行时

  • 用于运行 CLI 的 Node.js(deno 和 pure rust 在路线图上)
  • Cargo 用于测试、运行开发服务、构建二进制文件以及作为 webview 的运行时工具

主要语言

  • 用于 CLI 的 Rust
  • 与 Rust API 的 ECMAScript 绑定,用 typescript 编写
  • Rust 用于绑定,API 的 rust 方面,线束
  • Tauri 后端的 Rust 插件

操作系统

Tauri 内核可以在 Mac、Linux 和 Windows 上开发,但鼓励使用最新的操作系统并为新操作系统构建工具。

posted @ 2022-08-05 12:56  Jankin-Wen  阅读(2645)  评论(0编辑  收藏  举报