Rust GUI框架 tauri V2 项目创建

news/2024/9/19 17:40:11/ 标签: rust, 后端, tauri

文章目录

  • Tauri 2.0
  • 创建应用
  • 文档
  • 移动应用开发 Android 前置要求
  • 移动应用开发 iOS 前置要求
  • 参考资料

Tauri 2.0

Tauri 是一个构建适用于所有主流桌面和移动平台的轻快二进制文件的框架。开发者们可以集成任何用于创建用户界面的可以被编译成 HTML、JavaScript 和 CSS 的前端框架,同时可以在必要时使用 Rust、Swift 和 Kotlin 等语言编写后端逻辑。

你可以使用下面的任意一个命令以利用 create-tauri-app 创建一个新的项目。请务必参考前置要求文档安装所有 Tauri 必须的依赖,并阅读前端配置指南了解推荐的前端配置方案。

在你成功创建了你的第一个应用后,你可以在功能及秘诀列表探索 Tauri 的不同功能及秘诀。

为什么选用 Tauri

对于开发者而言,Tauri 有三个主要优势:

  • 构建应用所需的可靠基础
  • 使用系统原生 webview(网页视图)带来的更小打包体积
  • 使用任何前端技术和多种语言绑定带来的灵活性

可靠的基础

由于 Tauri 是使用 Rust 构建的,它可以利用 Rust 提供的内存、线程和类型安全方面的优势。而使用 Tauri 开发的应用也可以从中受益,甚至无需由 Rust 专家开发这些应用。

更小的体积

Tauri 利用了已经存在于每一个用户系统的 webview。Tauri 应用中只包含了该应用专属的代码和资源文件,不需要在每个应用中都打包一个浏览器引擎,这意味着一个最小化的 Tauri 应用体积可能小于 600KB。

灵活的架构

由于 Tauri 使用了 web 技术,这也意味着几乎所有的前端框架都与 Tauri 兼容。

创建应用

本文使用pnpm命,令创建应用

pnpm create tauri-app --rc

没有pnpm命令,可以使用npm install -g pnpm安装

请跟随提示选择您的项目名称、前端语言、包管理器以及前端框架。

输出如下

$ pnpm create tauri-app --rc
.../191-220         |   +2 +
.../191-220         | Progress: resolved 12, reused 0, downloaded 2, added 2, done
✔ Project name · tauri-app
✔ Identifier · com.gitcode.tauri-app-002
✔ Choose which language to use for your frontend · TypeScript / JavaScript - (pnpm, yarn, npm, bun)
✔ Choose your package manager · pnpm
✔ Choose your UI template · Vanilla
✔ Choose your UI flavor · JavaScriptTemplate created! To get started run:cd tauri-apppnpm installpnpm tauri android initFor Desktop development, run:pnpm tauri devFor Android development, run:pnpm tauri android dev

在这里插入图片描述
在 create-tauri-app 创建完项目后,您可以进入项目文件夹,安装依赖,然后使用 Tauri CLI 启动开发服务器:

cd tauri-app
pnpm install
pnpm tauri dev

您将会看到一个新的窗口被打开,该窗口正在运行您的应用。

恭喜您!您已经创建了您自己的 Tauri 应用!🚀

文档

tauri2.0
tauri2.0 android
tauri2.0 ios

移动应用开发 Android 前置要求

使用 Android Studio 中的 SDK Manager 安装以下内容:

  • Android SDK Platform
  • Android SDK Platform-Tools
  • NDK (Side by side)
  • Android SDK Build-Tools
  • Android SDK Command-line Tools

在这里插入图片描述
在这里插入图片描述

  • 配置 ANDROID_HOMENDK_HOME 环境变量
# 设置 SDK 目录的路径
ANDROID_HOME------D:\android_sdk
# 设置 NDK 目录的路径
NDK_HOME----------D:\android_sdk\ndk\27.1.12297006

其它环境变量(可选)

# 设置 SDK 安装目录的路径
ANDROID_HOME------------D:\android_sdk
# 用户数据
ANDROID_USER_HOME-------D:\android_data
# 用户数据---模拟器相关
ANDROID_EMULATOR_HOME---D:\android_data
ANDROID_AVD_HOME--------D:\android_data\avd
  • 使用 rustup 添加 Android 编译目标:
rustup target add aarch64-linux-android armv7-linux-androideabi \i686-linux-android x86_64-linux-android

移动应用开发 iOS 前置要求

仅 macOS
iOS 开发需要 Xcode,并且仅在 macOS 上可用。确保你在 macOS 系统依赖项部分中安装了 Xcode 而不是 Xcode 命令行工具。

  1. 在终端中使用 rustup 将 iOS 添加为编译目标:

Terminal window

rustup target add aarch64-apple-ios x86_64-apple-ios aarch64-apple-ios-sim
  1. 安装 Homebrew:

Terminal window

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  1. 使用 Homebrew 安装 Cocoapods:

Terminal window

brew install cocoapods

下一步:创建新项目。

pnpm create tauri-app --rc

参考资料

Android Studio 2024 安装、项目创建、加速、优化、 环境变量参数说明
Rust GUI框架Tauri V1 入门 Git管理


http://www.ppmy.cn/news/1527209.html

相关文章

JS面试真题 part5

JS面试真题 part5 21、说说对事件循环的理解22、JavaScript本地存储方式有哪些?区别及应用场景?23、大文件上传如何断点续传?24、ajax原理是什么?如何实现?25、什么是防抖和节流?有什么区别?如何…

HarmonyOS 实现沉浸式效果

👨🏻‍💻 热爱摄影的程序员 👨🏻‍🎨 喜欢编码的设计师 🧕🏻 擅长设计的剪辑师 🧑🏻‍🏫 一位高冷无情的全栈工程师 欢迎分享 / 收藏 / 赞 / 在看…

牛客周赛 Round 60(A,B,C,D,E,F)

比赛链接 官方题解 这场基本都是数学题,官方题解讲的还不错,F能听懂的话其实不难。E是一个球盒模型的组合问题,F是化简递推式,成环时的解决方法很不错。 A 困难数学题 思路: 一个数异或两次结果为 0 0 0&#xff…

CleanMyMac 5 for Mac 最新中文破解版下载 系统优化垃圾清理工具

今天给大家带来的是CleanMyMac最新款CleanMyMac 5,它是一个全面的Mac清理和维护工具,通过提供多项强大的功能,帮助用户简化日常维护任务,提升系统性能,同时保护个人隐私和安全。无论是新手还是经验丰富的Mac用户&#…

Axure设计之表格列冻结(动态面板+中继器)

在Web端产品设计中,复杂的表格展示是常见需求,尤其当表格包含大量列时,如何在有限的屏幕空间内优雅地展示所有信息成为了一个挑战。用户通常需要滚动查看隐藏列,但关键信息列(如ID、操作按钮等)在滚动时保持…

【数据分析】标准误差与标准差的区别

标准误差(Standard Error, SE)和标准差(Standard Deviation, SD)是两个在统计学中非常重要的概念,但它们的含义和用途有所不同。以下是它们之间的主要区别: 定义: 标准差:衡量单个数…

网络设备登录——《路由与交换技术》实验报告

目录 一、实验目的 二、实验设备和环境 三、实验记录 1.通过 Console 登录 步骤1:连接配置电缆。 步骤2:启动PC,运行超级终端。 步骤3:进入Console 配置界面 2.通过 Telnet 登录 步骤1:通过 Console 接口配置 Telnet 用户。 步骤2:配置 super 口令 步骤3:配置登录欢迎…

golang学习笔记25——golang 实现 MD5加密、RSA加密 和 Base64编码

推荐学习文档 golang应用级os框架,欢迎stargolang应用级os框架使用案例,欢迎star案例:基于golang开发的一款超有个性的旅游计划app经历golang实战大纲golang优秀开发常用开源库汇总想学习更多golang知识,这里有免费的golang学习笔…

在Unity UI中实现UILineRenderer组件绘制线条

背景介绍 在Unity的UI系统中,绘制线条并不像在3D世界中那样直观(使用Unity自带的LineRender组件在UI中连线并不方便,它在三维中更合适)。没有内置的工具来处理这种需求。如果你希望在UI元素之间绘制连接线(例如在UI上连接不同的图标或控件)&a…

用 Python 实现将长 Markdown 文档从二级标题开始拆分

以下是一个简单的Python脚本,它可以将Markdown文档按照二级标题(##)进行拆分,并保存到指定的输出路径。 import osdef split_markdown_by_headers(input_path, output_folder):# 确保输出文件夹存在if not os.path.exists(output…

如何快准稳 实现MySQL大表历史数据迁移?

历史迁移解决方案以微服务架构为基础,使用多种设计模式,如:单例、桥接、工厂、模板、策略等。其中涉及的核心技术有多线程、过滤器等,致力于解决MySQL大表迁移的问题,提供多种迁移模式,如:库到库…

明明没有程序占用端口,但是启动程序却提示端口无法使用,项目也启动失败

明明没有程序占用端口,但是启动程序却提示端口无法使用,项目也启动失败 win10、端口占用、port、netstat、used背景 曾在springboot中遇到过,新建spring cloud时又遇到这个问题,如果不从根本上解决,就需要改端口&…

uniapp点击跳转到对应位置

其实就是标签选择器 获取到对应标签所在的高度&#xff0c;然后用uni.pageScrollTo跳转&#xff0c;这是在正常页面上的跳转&#xff0c;scroll-view中更方便 <template><view class"product-page"><scroll-view scroll-y"true" class&quo…

c语言--力扣简单题目(回文链表)讲解

题目如下&#xff1a; 给你一个单链表的头节点 head &#xff0c;请你判断该链表是否为 回文链表。 如果是&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 示例 1&#xff1a; 输入&#xff1a;head [1,2,2,1] 输出&#xff1a;true 示例 2&#xff1…

力扣刷题--3033. 修改矩阵【简单】

题目描述 给你一个下标从 0 开始、大小为 m x n 的整数矩阵 matrix &#xff0c;新建一个下标从 0 开始、名为 answer 的矩阵。使 answer 与 matrix 相等&#xff0c;接着将其中每个值为 -1 的元素替换为所在列的 最大 元素。 返回矩阵 answer 。 算法分析 利用max_element…

基于鸿蒙API10的RTSP播放器(四:沉浸式播放窗口)

前言&#xff1a; 典型应用全屏窗口UI元素包括状态栏、应用界面和底部导航条&#xff0c;其中状态栏和导航条&#xff0c;通常在沉浸式布局下称为避让区&#xff1b;避让区之外的区域称为安全区。 开发应用沉浸式效果主要指通过调整状态栏、应用界面和导航条的显示效果来减少状…

Maven入门学习

maven是一款管理和构建java项目的工具。 1.概述 1.1安装 安装步骤: 1.1.1官网下载apache-maven-3.6.1-bin.zip&#xff0c;解压 apache-maven-3.6.1-bin.zip 。 1.1.2配置本地仓库:修改conf/settings.xml中的<localRepository>为一个指定目录。 <localRepository&g…

华雁智科前端面试题

1. var 变量的提升 题目&#xff1a; var a 1 function fun() {console.log(b)var b 2 } fun() console.log(a) 正确输出结果&#xff1a;undefined、1答错了&#xff0c;给一个大嘴巴子&#xff0c;错误答案输出结果为&#xff1a;2,1 此题主要考察 var 定义的变量&…

基于 PyQt5 和 OpenCV 进行图像处理操作的GUI工具初版

为了实现一个基于 PyQt5 和 OpenCV 的图形用户界面&#xff08;GUI&#xff09;&#xff0c;要求如下&#xff1a; 左边显示加载的图片。 中间提供各种对图片进行处理的操作方法&#xff08;如灰度化、模糊处理等&#xff09;。 右边显示处理后的效果图。 接下来我将详细讲解如…

Ajax 揭秘:异步 Web 交互的艺术

Ajax 揭秘&#xff1a;异步 Web 交互的艺术 一 . Ajax 的概述1.1 什么是 Ajax ?1.2 同步和异步的区别1.3 Ajax 的应用场景1.3.1 注册表单的用户名异步校验1.3.2 内容自动补全 二 . Ajax 的交互模型和传统交互模型的区别三 . Ajax 异步请求 axios3.1 axios 介绍3.1.1 使用步骤3…