@
akafeng 感谢你的反馈。
桌面客户端的技术选型是个很困难也需要权衡的问题,electron 已经是综合多方面考虑的最优解了。
采用原生技术栈开发,看起来体验上固然是最好的,但是对于个人开发者而言是有点不能承受的。不仅是要花数倍精力维护每个平台的代码,另外对于每个平台的测试工作也需要单独的进行。比如我自己常年使用 mac ,手边没有 windows 机器,对于仅仅业余维护的开源项目,暂时没有什么动机去准备一套齐全的测试环境。
tauri 可能是另一个介于跨平台和原生开发中间的选择。他与 electron 的区别是把 web 渲染的部分交给了系统,因此打包出来的软件体积非常的小,但是在运行期间的资源占用相比于 electron 而言优势并不大,很多人在计算 tauri 的资源占用的时候,只计算了 tauri 本身的,因此得出结论 tauri 很轻,实际上他会起一个 web 服务,这个服务的资源占用也并不小。
在实际开发的过程中 tauri 的问题也非常多,而且也面临框架稳定性,生态匮乏等其他问题,这些问题可能会直接影响软件的可用性。
因此综合来看 electron 几乎是唯一的选择,因为他在很多大型商业软件上都被验证过。稳定性 生态 兼容性都几乎是最好的。他的缺点如你所说,软件体积庞大,即便是一个空白的项目,完全解压后也会占用几百 mb 的磁盘空间。不过对于 netcatty 这样的软件来说,基本上也不会在此基础上占用更多的磁盘空间了,毕竟这是一个微信聊天记录都能占几十个 G 磁盘空间的时代。
内存和 CPU 的消耗可能也略高一点点,但是也并没有想象的那么夸张。 大多数情况下 netcatty 在开数量有限的 terminal 的情况下 主进程和渲染进程分别的内存占用大约在 200 - 300 MB, tauri 起的 webview 差不多也是类似的内存占用,甚至部分情况下会更多。
希望上述文字能帮助你了解我的心路历程,再次感谢你的支持。