当我掏出rust+v8+tauri 请问阁下应当如何应对

我一直想做一款轻量级的exlce解析客户端,首先它必须要足够轻量级,性能要强悍。针对excel解析其实有很多选择,我最终还是选择了rust作为基础,因为首先它足够安全效率,页面当然是我一直熟悉的angular作为前段页面,而框架我选择了tauri因为它足够轻量,并且api也足够我使用。

我的目的很明确,能帮我解决以下问题,由于我在维护一款系统,经常有插入数据或修改数据的场景,业务老师会整理excel给我,我的做法之前使用groovy解析excel加工之后生成对应的sql文件,但是维护起来比较麻烦,毕竟我还是喜欢客户端,最好像vscode一样好用。

开原地址 github.com/jasonSuiyt/...

下载地址 github.com/jasonSuiyt/...

支持 windows macos linux 其中对macos支持最好 因为我只有macos开发的 😄 打包交给了github(爱了竟然免费使用)

是不是很像vscode支持dark和light两种主题,会根据系统主题切换

扩展V8函数如下、对于我目前的需求够用 不够用的也可以用js进行扩展

javascript 复制代码
    fs.read_xls();//默认读取选择的xlsx文件
    fs.read_xls(path);//读取对应地址的xlsx文件
    fs.crete(sqlFile);//创建文件
    fs.append(sqlFile, str);//向对应文件追加文本
    uuid();//uuid
    snowid();//雪花算法id

技术栈简介

  1. Rust:一种高性能、内存安全的系统级编程语言,特别适用于需要高效、低资源消耗的应用。
  2. Tauri:一个开源框架,允许开发者使用前端技术(HTML、CSS、JavaScript)构建安全的、原生的、跨平台的桌面应用。
  3. Angular:一个流行的JavaScript框架,用于构建单页应用(SPA),提供结构化的开发体验和丰富的组件库。
  4. V8:Google开发的开源JavaScript引擎,以其高性能和即时编译(JIT)能力而著称,是Chrome浏览器和Node.js等项目的核心组件。
  5. *tailwindcss # 只需书写 HTML 代码,无需书写 CSS,即可快速构建美观的网站。

应用架构

在这个应用中,Rust将主要用于处理底层、性能敏感的Excel解析任务。由于Rust具有直接访问系统资源和无垃圾回收的特性,它非常适合处理这类任务。

Tauri将作为应用的外壳,负责提供原生的桌面应用体验。它将打包Angular构建的前端代码,并通过V8引擎运行这些代码。Tauri还负责处理系统级的交互,如文件选择对话框、通知等。

Angular将作为前端框架,提供用户界面和交互逻辑。开发者可以使用Angular的组件化架构和丰富的开发工具来快速构建用户界面。

V8引擎将嵌入在Tauri中,用于执行Angular生成的JavaScript代码。V8的高效执行和JIT编译能力将确保应用的流畅运行。

Excel解析

对于Excel解析,Rust生态系统中有多个库可供选择,如calamineexcel。这些库提供了读取和解析Excel文件(包括.xlsx.xls格式)的功能。开发者可以在Rust中编写一个服务或库来处理Excel文件的解析,并通过Tauri的API将解析结果传递给前端。

前端与后端的交互

在Tauri应用中,前端(Angular)与后端(Rust)之间的交互通常通过Tauri提供的API进行。例如,当用户选择一个Excel文件进行解析时,Angular前端可以调用Tauri的API来打开文件选择对话框,并获取用户选择的文件路径。然后,前端可以将文件路径传递给Rust后端进行解析。解析完成后,Rust后端可以将结果通过Tauri的API返回给前端显示。

总结

Rust、Tauri、Angular和V8的组合为我提供了一个强大而灵活的解决方案,可以快速构建出高效、安全、用户友好的桌面应用。

相关推荐
coderWangbuer15 分钟前
基于springboot的高校招生系统(含源码+sql+视频导入教程+文档+PPT)
spring boot·后端·sql
攸攸太上21 分钟前
JMeter学习
java·后端·学习·jmeter·微服务
Kenny.志24 分钟前
2、Spring Boot 3.x 集成 Feign
java·spring boot·后端
sky丶Mamba41 分钟前
Spring Boot中获取application.yml中属性的几种方式
java·spring boot·后端
千里码aicood2 小时前
【2025】springboot教学评价管理系统(源码+文档+调试+答疑)
java·spring boot·后端·教学管理系统
程序员-珍2 小时前
使用openapi生成前端请求文件报错 ‘Token “Integer“ does not exist.‘
java·前端·spring boot·后端·restful·个人开发
liuxin334455662 小时前
教育技术革新:SpringBoot在线教育系统开发
数据库·spring boot·后端
数字扫地僧3 小时前
HBase与Hive、Spark的集成应用案例
后端
架构师吕师傅3 小时前
性能优化实战(三):缓存为王-面向缓存的设计
后端·微服务·架构
bug菌3 小时前
Java GUI编程进阶:多线程与并发处理的实战指南
java·后端·java ee