Web 打印服务之实现篇

分类:打印     发布时间:2024-08-12     最后更新:2024-08-12     浏览数:271
接上一篇Web 打印服务之需求篇,这篇主要关注实现过程。 1、用最熟悉的技术栈 Electron 初探 一开始是用 Electron 来做,做完之后发现有几个问题: 安装包太大 很容易被抄袭。

接上一篇Web 打印服务之需求篇,这篇主要关注实现过程。

1、用最熟悉的技术栈 Electron 初探

一开始是用 Electron 来做,做完之后发现有几个问题:

  • 安装包太大
  • 很容易被抄袭(源码无法保护)

2、追求安装包最小 Slint

后来尝试用 slint(Slint is a declarative GUI toolkit to build native user interfaces for Rust, C++, or JavaScript apps.)

遇到的问题:

  • 界面是写出来了,但是无法实现需求:“应用关闭时不时退出,而是最小化到托盘。”
  • 无法实现需求:“实现启动、关闭 WebSocket 服务”

3、试试 Tauri

后来尝试用 Tauri,遇到的问题:

  • 由于 Rust 不熟,靠 ChatGPT 东拼西凑没能实现启动、关闭 WebSocket 服务,卡在这里两个多星期。
  • 在 Windows 系统,Tauri 运行占用的内存比 Electron 还高,诧异之余,也不明所以。

总结

最后在谷歌和 ChatGPT 的帮助下,用 Tauri 实现了一个应用。

成果

  • MacOS 10.15.7 打包出的 dmg 只有 3.1MB
上一篇: Web 打印服务之需求篇 下一篇: Rust 引用