用Tauri框架构建跨平台桌面应用:1、Tauri快速开始
Tauri 是一个构建适用于所有主流桌面和移动平台的轻快二进制文件的框架。开发者们可以集成任何用于创建用户界面的可以被编译成 HTML、JavaScript 和 CSS 的前端框架,同时可以在必要时使用 Rust、Swift 和 Kotlin 等语言编写后端逻辑。
Tauri 是什么? | Tauri
首先安装依赖包
安装Ubuntu apt包
sudo apt install libwebkit2gtk-4.0-dev \build-essential \curl \wget \file \libxdo-dev \libssl-dev \libgtk-3-dev \libayatana-appindicator3-dev \librsvg2-dev
安装rustc
apt安装的版本低,需要使用官网的安装:
curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh
但是这个会卡住。。。
中间尝试过用apt安装好并更新到1.80版本:
apt upgrade rustc-1.80
看着说更新了,但是还是报错说rustc版本低。。。。后来是用的官网的方法:
官网方法
直接执行安装命令:
curl https://sh.rustup.rs -sSf | sh
安装完成后提示:
Rust is installed now. Great!To get started you may need to restart your current shell.
This would reload your PATH environment variable to include
Cargo's bin directory ($HOME/.cargo/bin).To configure your current shell, you need to source
the corresponding env file under $HOME/.cargo.This is usually done by running one of the following (note the leading DOT):
. "$HOME/.cargo/env" # For sh/bash/zsh/ash/dash/pdksh
source "$HOME/.cargo/env.fish" # For fish
重新登录用户,或者执行命令激活环境:
. "$HOME/.cargo/env" # For sh/bash/zsh/ash/dash/pdksh
使用bash创建项目
sh <(curl https://create.tauri.app/sh)% Total % Received % Xferd Average Speed Time Time Time CurrentDload Upload Total Spent Left Speed0 0 0 0 0 0 0 0 --:--:-- --:--:-- --: 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --: 0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:100 16121 100 16121 0 0 7933 0 0:00:02 0:00:02 --:--:-- 7937
info: downloading create-tauri-app
✔ Project name · tauri-app
✔ Identifier · com.tauri-app.app
✔ Choose which language to use for your frontend · TypeScript / JavaScript - (pnpm, yarn, npm, deno, bun)
✔ Choose your package manager · pnpm
✔ Choose your UI template · Vue - (https://vuejs.org/)
✔ Choose your UI flavor · TypeScriptTemplate created!Your system is missing dependencies (or they do not exist in $PATH):
╭────────────────────┬─────────────────────────────────────────────────────╮
│ Node.js │ Visit https://nodejs.org/ │
├────────────────────┼─────────────────────────────────────────────────────┤
│ webkit2gtk & rsvg2 │ Visit https://tauri.app/guides/prerequisites/#linux │
╰────────────────────┴─────────────────────────────────────────────────────╯Make sure you have installed the prerequisites for your OS: https://tauri.app/start/prerequisites/, then run:cd tauri-apppnpm installpnpm tauri android initFor Desktop development, run:pnpm tauri devFor Android development, run:pnpm tauri android dev
进入目录使用 Tauri CLI 启动开发服务器:
cd tauri-app
cargo tauri dev
这里没有运行成功,改用手动
先安装
cargo search cargo-tauri
都不行,换一个方法:重新用cargo创建目录
使用cargo创建项目
执行命令:
cargo install create-tauri-app --locked
cargo create-tauri-app
安装过程中会让选择模版,五种ui模版,最佳应该选哪个? Vanilla Yew Leptos Sycamore Dioxus
听AI的劝,再加上自己的主观判断,最后选了Leptos
装完之后提示:
Your system is missing dependencies (or they do not exist in $PATH):
╭───────────────┬───────────────────────────────────────────────────────────╮
│ Tauri CLI │ Run `cargo install tauri-cli --version '^2.0.0' --locked` │
├───────────────┼───────────────────────────────────────────────────────────┤
│ Trunk │ Run `cargo install trunk --locked` │
├───────────────┼───────────────────────────────────────────────────────────┤
│ wasm32 target │ Run `rustup target add wasm32-unknown-unknown` │
├───────────────┼───────────────────────────────────────────────────────────┤
│ webkit2gtk │ Visit https://tauri.app/guides/prerequisites/#linux │
╰───────────────┴───────────────────────────────────────────────────────────╯Make sure you have installed the prerequisites for your OS: https://tauri.app/start/prerequisites/, then run:cd tauri-appcargo tauri android initFor Desktop development, run:cargo tauri devFor Android development, run:cargo tauri android dev
后来才知道,需要按照提示安装缺失的软件,比如Tauri CLI等。
开始 :使用 Tauri CLI 启动开发服务器:
项目创建好后,提示执行下面命令安装Tauri CLI:
cargo install tauri-cli --version "^2.0.0" --locked
安装完成提示:
Installing /root/.cargo/bin/cargo-tauriInstalled package `tauri-cli v2.1.0` (executable `cargo-tauri`)
bash: Run: command not found
因为是远程无窗口服务器,所以最后有个bash命令没执行,理论上应该是:
您将会看到一个新的窗口被打开,该窗口正在运行您的应用。
恭喜您! 您已经创建了您自己的 Tauri 应用!🚀
后来在Mac下安装成功,看到了Tauri的窗体。

调试
报错error: crates-io is replaced with non-remote-registry source registry `mirror`
cargo search cargo-tauri
error: crates-io is replaced with non-remote-registry source registry `mirror`;
include `--registry crates-io` to use crates.io
加上这句:
[source.crates-io]
registry = "https://github.com/rust - lang/crates.io - index"
replace-with = 'mirror'
好像不管用。
用这条命令:
cargo search tauri --registry crates-io
能看到东西,但是装起来还是不错,应该还是版本问题。
报错cannot install package `tauri 2.1.1`, it requires rustc 1.77.2 or newer
cargo install tauri
Updating `mirror` index
error: cannot install package `tauri 2.1.1`, it requires rustc 1.77.2 or newer, while the currently active rustc version is 1.75.0
`tauri 2.0.0-rc.17` supports rustc 1.71
用apt等升级rustc,一直没升上去,最后使用官网的方法安装新版本:
curl https://sh.rustup.rs -sSf | sh
参考 初识Cargo-Rust的包管理器_cargo,rust包管理器-CSDN博客
FreeBSD系统不支持cargo install tauri-cli
命令安装:
cargo install tauri-cli --version '^2.0.0' --locked
Compiling magic_string v0.3.4
error: Host platform not yet supported by cargo-mobile2! We'd love if you made a PR to add support for this platform ❤️--> /home/skywalk/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/cargo-mobile2-0.17.4/src/os/mod.rs:22:1|
22 | compile_error!("Host platform not yet supported by cargo-mobile2! We'd love if you made a PR to add support for this platform ❤...;| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^error[E0432]: unresolved import `crate::os::consts`
最终放弃在FreeBSD下使用Tauri 。
相关文章:
用Tauri框架构建跨平台桌面应用:1、Tauri快速开始
Tauri 是一个构建适用于所有主流桌面和移动平台的轻快二进制文件的框架。开发者们可以集成任何用于创建用户界面的可以被编译成 HTML、JavaScript 和 CSS 的前端框架,同时可以在必要时使用 Rust、Swift 和 Kotlin 等语言编写后端逻辑。 Tauri 是什么? |…...
Django实现智能问答助手-数据库方式读取问题和答案
扩展 增加问答数据库,通过 Django Admin 添加问题和答案。实现更复杂的问答逻辑,比如使用自然语言处理(NLP)库。使用前端框架(如 Bootstrap)增强用户界面 1.注册模型到 Django Admin(admin.py…...
stm32利用LED配置基础寄存器+体验滴答定时器+hal库环境配置
P1 LED控制与流水灯效果实现 概述 大家好,今天我们来学习一下如何在STM32上控制LED灯,并且实现一个流水灯的效果。这不仅是一个基础的实践,也是嵌入式开发中非常常见的需求。 LED控制 1. LED初始化 首先,我们需要对LED灯对应…...
JAVA开源项目 桂林旅游景点导游平台 计算机毕业设计
博主说明:本文项目编号 T 079 ,文末自助获取源码 \color{red}{T079,文末自助获取源码} T079,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析…...
docker安装使用Elasticsearch,解决启动后无法访问9200问题
1.docker安装、启动es docker pull elasticsearch:8.13.0docker images启动容器 docker run -d -p 9200:9200 -p 9300:9300 -e ES_JAVA_OPTS"-Xms256m -Xmx256m" --name es01 8ebd258614f1-d 后台运行-p 9200:9200 -p 9300:9300 开放与主机映射端口-e ES_JAVA_OPTS…...
GM、BP、LSTM时间预测预测代码
GM clc; clear; close all;%% 数据加载和预处理 [file, path] uigetfile(*.xlsx, Select the Excel file); filename fullfile(path, file); time_series xlsread(filename);% 确保数据是一列 time_series time_series(:);% 归一化数据 min_val min(time_series); max_v…...
《操作系统 - 清华大学》4 -5:非连续内存分配:页表一反向页表
文章目录 1. 大地址空间的问题2. 页寄存器( Page Registers )方案3. 基于关联内存(associative memory )的反向页表(inverted page table)4. 基于哈希(hashed)查找的反向页表5. 小结 1. 大地址空间的问题 …...
志愿者小程序源码社区网格志愿者服务小程序php
志愿者服务小程序源码开发方案:开发语言后端php,tp框架,前端是uniapp。 一 志愿者端-小程序: 申请成为志愿者,志愿者组织端进行审核。成为志愿者后,可以报名参加志愿者活动。 志愿者地图:可以…...
Java语言编程,通过阿里云mongo数据库监控实现数据库的连接池优化
一、背景 线上程序连接mongos超时,mongo监控显示连接数已使用100%。 java程序报错信息: org.mongodb.driver.connection: Closed connection [connectionId{localValue:1480}] to 192.168.10.16:3717 because there was a socket exception raised by…...
使用ufw配置防火墙,允许特定范围IP访问
文章目录 1. 安装 UFW(如果尚未安装)2. 允许特定 IP 地址访问 22 端口3. 允许特定子网访问 22 端口4. 启用 UFW5. 检查 UFW 状态6. 重新加载 UFW(如果需要)7. 删除规则(如果需要) 在ubuntu上使用 ufw&#…...
实现 UniApp 右上角按钮“扫一扫”功能实战教学
实现 UniApp 右上角按钮“扫一扫”功能实战教学 需求 点击右上角扫一扫按钮(onNavigationBarButtonTap监听),打开扫一扫页面(uni.scanCode) 扫描后,以网页的形式打开扫描内容(web-view组件),限制只能浏览带有执行域名的网站,例如…...
【2024亚太杯亚太赛APMCM C题】数学建模竞赛|宠物行业及相关产业的发展分析与策略|建模过程+完整代码论文全解全析
第一个问题是:请基于附件 1 中的数据以及你的团队收集的额外数据,分析过去五年中国宠物行业按宠物类型的发展情况。并分析中国宠物行业发展的因素,预测未来三年中国宠物行业的发展。 第一个问题:分析中国宠物行业按宠物类型的发展…...
ubtil循环函数调用
什么是until until循环是一种控制流结构。它与while循环相反,while循环是在条件为真时执行循环体,而until循环是在条件为假时执行循环体,直到条件为真时才停止循环。 until代码示例: i0 do until [ ! $i -lt 10 ] echo $…...
使用EFK收集k8s日志
首先我们使用EFK收集Kubernetes集群中的日志,本次实验讲解的是在Kubernetes集群中启动一个Elasticsearch集群,如果企业内已经有了Elasticsearch集群,可以直接将日志输出至已有的Elasticsearch集群。 文章目录 部署elasticsearch创建Kibana创建…...
聚水潭与MySQL数据集成案例分享
聚水潭数据集成到MySQL的技术案例分享 在现代数据驱动的业务环境中,如何高效、可靠地实现不同系统之间的数据对接成为企业关注的焦点。本次案例将详细介绍如何通过轻易云数据集成平台,将聚水潭的数据无缝集成到MySQL数据库中,实现从“聚水谭…...
Python 版本的 2024详细代码
2048游戏的Python实现 概述: 2048是一款流行的单人益智游戏,玩家通过滑动数字瓷砖来合并相同的数字,目标是合成2048这个数字。本文将介绍如何使用Python和Pygame库实现2048游戏的基本功能,包括游戏逻辑、界面绘制和用户交互。 主…...
SpringCloud框架学习(第四部分:Gateway网关)
目录 十一、Gateway新一代网关 1.概述 2.Gateway三大核心 3.工作流程 4.入门配置 5.路由映射 (1)8001 外部添加网关 (2)服务间调用添加网关 (3)存在问题 6.Gateway高级特性 (1&#x…...
C++ 类和对象 (上 )
学习本身就是一件很快乐的事情 一. 面向对象和面向过程 我们在学习计算机的过程中经常会听到xxx是一门面向对象的语言 xxx是一门面向过程的语言 那么到底什么是面向对象 什么是面向过程呢? 简单介绍下 面向过程 面向过程关注的是过程 分析出求解问题的步骤&…...
HAProxy面试题及参考答案(精选80道面试题)
目录 什么是 HAProxy? HAProxy 主要有哪些功能? HAProxy 的关键特性有哪些? HAProxy 的主要功能是什么? HAProxy 的作用是什么? 解释 HAProxy 在网络架构中的作用。 HAProxy 与负载均衡器之间的关系是什么? HAProxy 是如何实现负载均衡的? 阐述 HAProxy 的四层…...
探索PyCaret:一个简化机器学习的全栈库
探索PyCaret:一个简化机器学习的全栈库 机器学习领域充满了挑战,从数据预处理、特征工程到模型训练与评估,再到模型部署。对于数据科学初学者或者时间有限的开发者,这一流程可能显得繁琐且复杂。幸运的是,PyCaret 提供…...
13.解决 99% 刷机故障!小米 / 华为 / OV / 苹果通用救砖与分区修复教程
摘要 本文面向具备基础电子知识的技术人员,系统阐述主流品牌手机(华为、小米、OPPO、vivo、一加、苹果)的刷机与维修全流程。内容涵盖底层引导加载机制、分区表结构、签名验证原理,并提供完整的刷机脚本与维修诊断工具链。所有代码均已测试,可直接在Linux/Windows环境下运…...
VMware17装CentOS踩过的那些坑:从镜像选择、密码设置到登录失败的完整避雷指南
VMware17安装CentOS实战避坑指南:从镜像选择到登录失败的深度解析第一次在VMware17上安装CentOS时,我像大多数新手一样,以为只要跟着教程一步步操作就能顺利完成。然而现实给了我一记响亮的耳光——从镜像下载到最终登录,几乎每个…...
MacBook锁屏别慌!手把手教你用恢复模式+Apple ID重置开机密码(保姆级图文)
MacBook锁屏急救指南:3种安全解锁方案详解刚泡好的咖啡还在冒热气,手指悬在键盘上方却突然僵住——那个每天输入几十次的密码,此刻竟怎么也想不起来了。MacBook屏幕上冰冷的"密码错误"提示像一堵墙,将你与所有工作资料、…...
UE5小地图实战:SceneCapture2D+RenderTarget动态雷达优化指南
1. 这不是“加个UI贴图”就能糊弄过去的小地图在UE5项目里做小地图,很多人第一反应是:找张静态地图图片,用UMG拖个Image控件,再写个蓝图把玩家坐标换算成UI像素位置——做完就交差。我去年带一个独立团队做开放世界生存游戏时&…...
Mac到手别急着装软件,先搞定这3个基础设置(含开启任意来源命令)
Mac新机必做的3项底层优化:从系统设置到高效工作流刚拆封的MacBook总带着一种特殊的仪式感——光滑的铝金属外壳、视网膜屏幕的细腻显示、以及那个等待被按下的电源键。但在这份新鲜感之后,许多用户会直接跳转到软件安装环节,却忽略了更重要的…...
如何免费将PPTX转换为HTML?探索纯JavaScript解决方案的完整指南
如何免费将PPTX转换为HTML?探索纯JavaScript解决方案的完整指南 【免费下载链接】PPTX2HTML Convert pptx file to HTML by using pure javascript 项目地址: https://gitcode.com/gh_mirrors/pp/PPTX2HTML 在数字化办公时代,PPTX2HTML作为一款纯…...
DeepSeek混合云架构下跨AZ流量调度困局:基于eBPF+Service Mesh的实时负载感知调度器设计(已上线支撑日均2.7亿QPS)
更多请点击: https://codechina.net 第一章:DeepSeek混合云架构下跨AZ流量调度困局的系统性认知 在DeepSeek混合云生产环境中,核心推理服务部署于多可用区(AZ)集群,底层横跨公有云(如AWS us-ea…...
昇腾CANN ops-transformer FlashAttention 反向传播:不存 Attention 矩阵怎么求梯度
FlashAttention 前向传播的精髓:不存 NN 的 attention 矩阵,只存 O(N) 的输出和 softmax 归一化因子。反向传播时,需要 attention 矩阵来计算梯度——但矩阵没存。解法:重新算一遍。用额外的计算换显存——这是典型的 compute-for…...
从被动应答到自我进化,深度拆解Agent核心技术范式的四年演进之路
从2023年大模型爆发至今,智能Agent技术只用了短短四年时间,就完成了数次颠覆性的迭代升级。从最初只会被动应答的聊天增强工具,到如今能够自主规划复杂任务、持续自我进化的数字员工,Agent的技术形态、架构逻辑和落地范式都发生了…...
20年AI平台建设者私藏清单:5款“伪开源”商业工具 vs 3款真正企业级开源AI引擎——性能、支持、审计三重穿透测评
更多请点击: https://codechina.net 第一章:20年AI平台建设者私藏清单:5款“伪开源”商业工具 vs 3款真正企业级开源AI引擎——性能、支持、审计三重穿透测评 在构建高可用AI基础设施的二十年实践中,我们反复验证一个残酷事实&am…...
