凌鲨(linksaas)的客户端架构

凌鲨(linksaas)的客户端架构

凌鲨(linksaas)的客户端架构_第1张图片

客户端使用了tauri作为大框架来进行研发,选择理由:

  • 稳定性,tauri底层逻辑都是rust写的,只要不用unsafe,基本可以保证零崩溃,也可以保证较小的内存使用。
  • 便捷的插件体系,只要在rust函数上打上#[tauri::command]即可。如果在electron中增加插件,需要用c++,并了解v8的一些基本结构。
  • 更好的性能,参考Benchmarks | Tauri Apps

从几个月的开发体验来说,使用tauri基本没遇到什么大的坑。

我们在plugins里面主要集成了和服务端的通信协议,和外部研发体系互动部分放在了shell里面。shell以sidecar方式集成在tauri里面。

这样做的原因:

  • 保持主体程序的稳定性
  • 和外部系统交互的频次远小于对服务端的调用
  • 方便添加功能

shell目前是用rust开发的,后续可能会换成golang。

关于通信协议

我们主要使用grpc作为主要通信协议,mqtt用来做push通知使用。

使用grpc的原因:

  • 协议变更的兼容性
  • 支持流式传输
  • 多路复用
  • 支持主流的编程语言

相关代码

  • 通讯协议定义 linksaas / proto · GitLab
  • 通讯协议生成的rust代码 linksaas / proto-gen-rust · GitLab
  • shell linksaas / shell · GitLab
  • 客户端 linksaas / desktop · GitLab

 

你可能感兴趣的:(架构,rust,开发语言,个人开发)