网站首页 > 博客文章 正文
凌鲨(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
猜你喜欢
- 2024-10-16 Spring Boot集成grpc快速入门demo
- 2024-10-16 如何在 Go 中使用 gRPC?(golang grpc etcd)
- 2024-10-16 gRPC 1.34.0 发布,高性能 RPC 框架
- 2024-10-16 gRPC入坑记(grpc教程 go)
- 2024-10-16 Python gRPC 入门(grpc python asyncio)
- 2024-10-16 纯干货:微服务开发手册之GRPC(微服务开发入门)
- 2024-10-16 golang中gRPC与gRPC-Gateway的结合使用
- 2024-10-16 gRPC学习记录(一) 概念性知识(grpc特点)
- 2024-10-16 GRPC-C++源码分析(六)--Server-Register
- 2024-10-16 漫谈gRPC:Google自研的rpc框架(grpc go-micro)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)