用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 提供…...
Zustand 状态管理库:极简而强大的解决方案
Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...
.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...
基于当前项目通过npm包形式暴露公共组件
1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...
Python爬虫(一):爬虫伪装
一、网站防爬机制概述 在当今互联网环境中,具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类: 身份验证机制:直接将未经授权的爬虫阻挡在外反爬技术体系:通过各种技术手段增加爬虫获取数据的难度…...
linux 下常用变更-8
1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...
(转)什么是DockerCompose?它有什么作用?
一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...
保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek
文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama(有网络的电脑)2.2.3 安装Ollama(无网络的电脑)2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...
使用LangGraph和LangSmith构建多智能体人工智能系统
现在,通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战,比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...
