当前位置: 首页 > news >正文

tauri中的wry和tao是干啥的?都是什么作用

简单来说:

  • tao - 是 跨平台应用程序窗口创建和事件循环管理 的底层库。它负责的是“应用程序”本身的生命周期。

  • wry - 是 跨平台 WebView 渲染引擎的抽象层。它负责的是在 tao 创建的窗口里“显示网页内容”。

你可以把它们想象成建造一个房子:

  • tao 是 地基、框架和窗户。它决定了房子建在哪里、有多大、有几个窗户,并处理风吹雨打等外部事件。

  • wry 是 房子里的电视或投影仪。它负责在窗户框出来的区域里,播放你想要的视频内容。

下面我们来详细解释一下。

1. Tao - 跨平台应用窗口

核心职责:创建和管理原生应用程序窗口、处理系统事件循环。

它具体做什么

  • 窗口创建:在不同操作系统(Windows, macOS, Linux, Android, iOS)上调用系统原生 API(如 Win32, Cocoa, GTK+)来创建和管理窗口。你可以设置窗口的标题、大小、位置、是否全屏等属性。

  • 事件循环:运行一个主事件循环,监听并分发来自操作系统的各种事件,例如:

    • 键盘按键、鼠标点击、触摸事件

    • 窗口事件(移动、调整大小、最大化、最小化、关闭)

    • 应用生命周期事件(启动、进入后台、恢复、退出)

  • 菜单:创建和管理原生的应用程序菜单栏(macOS 顶部的菜单、Windows/Linux 的窗口菜单)。

为什么需要它
Tauri 的目标是成为一个轻量级的跨平台桌面应用框架。它不希望依赖像 Electron 那样庞大的 Chromium 引擎来处理窗口创建和事件。tao 提供了一个极其精简和高效的抽象层,只做最基础的窗口管理,这使得 Tauri 应用的体积和内存占用都非常小。

一句话总结tao 让 Tauri 应用能够作为一个“原生应用程序”在目标操作系统上运行起来。


2. Wry - 跨平台 WebView

核心职责:在 tao 创建的窗口中,嵌入并控制一个操作系统原生的 WebView

它具体做什么

  • WebView 抽象:它定义了一套统一的 API,让 Tauri 可以用同样的代码去操作不同操作系统上的 WebView 组件。

    • 在 Windows 上,它使用 WebView2 (基于 Chromium)

    • 在 macOS 上,它使用 WKWebView (基于 WebKit)

    • 在 Linux 上,它使用 WebKitGTK (基于 WebKit)

  • 渲染内容:负责在 WebView 中加载和显示你的前端界面(HTML, CSS, JavaScript)。

  • 通信桥梁:它建立了 Rust 后端(Tauri 核心)和前端 JavaScript 之间的通信通道。你通过 Tauri 暴露的 Rust 命令,最终是通过 wry 来与前端进行交互的。

为什么需要它
Tauri 的核心思想是“利用系统已有的 WebView”,而不是自己打包一个。这带来了巨大的优势:

  • 体积小:应用打包时不需要包含整个浏览器引擎。

  • 内存占用低:如果用户已经打开了使用相同 WebView 的应用(如 Edge),WebView 运行时可以被共享。

  • 性能好:使用的就是操作系统提供的最新、最优化的 Web 渲染引擎。

一句话总结wry 让 Tauri 应用能够在原生窗口里,安全、高效地显示你的 Web 前端界面,并实现前后端通信。


它们与 Tauri 的关系

Tauri 将 tao 和 wry 组合在一起,并在此基础上添加了更多强大的功能,形成了一个完整的应用框架。

工作流程

  1. Tauri 应用启动,调用 tao 来初始化应用程序实例和主窗口。

  2. tao 开始运行事件循环,监听系统事件。

  3. Tauri 调用 wry,告诉它在 tao 创建的窗口中创建一个 WebView。

  4. wry 使用系统原生 API 创建 WebView,并将其嵌入到窗口中。

  5. 你的前端代码(HTML, JS, CSS)在这个 WebView 中加载和运行。

  6. 当用户与前端交互(如点击一个按钮调用 Rust 命令),wry 负责将这个请求传递给 Tauri 的后端逻辑。

  7. 当系统事件发生时(如用户点击关闭按钮),tao 会通知 Tauri,Tauri 可以执行相应的清理或阻止关闭逻辑。

总结对比表

特性TaoWry
核心职责跨平台窗口管理与事件循环跨平台 WebView 抽象与渲染
类比房子的框架和窗户房子里的电视/投影仪
依赖关系不依赖 Wry依赖 Tao(因为 WebView 需要嵌入到一个窗口里)
Tauri 中的作用让应用成为原生应用让应用能够显示Web界面并与之通信

希望这个解释能帮助你清晰地理解 wry 和 tao 在 Tauri 生态系统中的角色!

http://www.dtcms.com/a/435199.html

相关文章:

  • 个人网站建设发布信息wordpress移动端悬浮导航代码
  • 神经网络评估指标:准确率、召回率等详解(代码验证)
  • linux免密切换
  • 藏语自然语言处理入门 - 2 分词
  • 2020年美国新冠肺炎疫情数据分析与可视化
  • 天津重型网站建设推荐影响网站alexa排名的主要因素有
  • 2.Java中创建线程
  • 分段函数的傅里叶变换及其应用
  • 全网网站建设优化长江设计公司
  • 公司网站推广张家界网站建设
  • 英语学习-Saints037
  • 拧紧扭矩到达后电机是否过冲测试(拧紧策略算法系列)
  • 领码方案|微服务与SOA的世纪对话(1):从“大一统”到“小而美”
  • 【JS】什么是单例模式
  • 昆明网站建设优化企业wap网站 微信小程序
  • wordpress 网站统计插件网站建设网页开发
  • 网站内容维护费用灯光设计网站推荐
  • pink老师html5+css3day02
  • CTFHub 信息泄露通关笔记4:备份文件下载 bak文件
  • OverlayManager service, overlay, idmap, rro, android
  • 如何拆解一个Java项目?
  • C++ 泛型和特化
  • 【Linux篇】Linux指令进阶:从入门到熟练的实操指南
  • Orleans流系统时序图
  • 专业网站建设价格分析企业建设网站好吗
  • 活动日志系统集成指南
  • 弹幕网站是怎么做的软件开发工程师级别
  • 贵阳市建设局信息管理网站中国建设会计学网站
  • 函数简单传入参数的汇编分析
  • 怎样做已有网站的编辑维护大沥九江网站制作