专业的编程技术博客社区

网站首页 > 博客文章 正文

凌鲨(linksaas)的客户端架构(凌肖 鲨鱼)

baijin 2024-10-16 07:44:42 博客文章 9 ℃ 0 评论

凌鲨(linksaas)的客户端架构

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

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

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

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

这样做的原因:

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

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

关于通信协议

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

使用grpc的原因:

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

相关代码

  • 通讯协议定义 https://jihulab.com/linksaas/proto
  • 通讯协议生成的rust代码 https://jihulab.com/linksaas/proto-gen-rust
  • shell https://jihulab.com/linksaas/shell
  • 客户端 https://jihulab.com/linksaas/desktop

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表