RustDesk Desktop Flutter 迁移启动

2022-05-23 19:44:37 +08:00
 opentrade

不好意思我又来发帖了,团队带起来了,我就比较闲了,:)。

经过一周的选型讨论,包括 Tauri 作者和 flutter_rust_bridge 作者的深度参入,我们暂时放弃 Tauri ,主要原因是 Tauri 放弃了共享内存的支持,而 IPC 目前性能很差,也看不到近期可以改善的可能性,偏偏这个特性的不完善对于 RustDesk 应用是致命的。

今天我们启动了 Flutter 迁移项目,整个开发过程都是公开的,有兴趣的可以参入学习讨论,根据情况再决定是否需要开启一个微信讨论群。

项目地址

目前确定三位参入者,

SoLongAndThanksForAllThePizza

Kingtous

Heap-Hop

前两位小同志是实习生,后一位是 RustDesk 团队成员。

上周收到很多应聘实习生的邮件,大家都问怎么考察,所以我提一下我的简单方法。

SoLongAndThanksForAllThePizza的确定是他在选型讨论中的表现。

Kingtous已经通过提交 PR 体现了能力。

不一定适用于其他老板,但是积极展现能力应该是通用的,毕竟是开源项目。

2347 次点击
所在节点    程序员
10 条回复
Buges
2022-05-23 20:28:40 +08:00
tauri 只是个 webview 啊,如果你们不打算开发 Web UI (类似 noVNC ?)的话,不该把远程桌面放到 webview 里渲染吧。
图形渲染应该开一个单独的窗口直接调用图形 API 性能才是最高的,这种境况下少量的 ui 组件就应该采用一些立即模式的库,不知道 egui 你们考虑过没。
opentrade
2022-05-23 21:22:39 +08:00
@Buges 考虑过 Tauri 作者提到 TAO-EGUI ,但是暂时还没有勇气给它们当小白。全部用 EGUI 写,就更没有勇气了,EGUI 作为嵌入式 UI 框架的确非常棒。
Buges
2022-05-23 21:41:05 +08:00
@opentrade egui 还是挺完善的,嵌入到 gl/vulkan/wgpu/glfw 等上下文中非常方便。
追求性能的话考虑一下分窗口,主界面、控制界面逻辑复杂、多交互,用 webview 或 flutter 写。渲染窗口注重高性能,控件简单,用原生的图形 API 配合 egui 少量组件。可以参考一下那些游戏串流的工具,嵌入到其他 GUI 库里性能可能很难达到要求。
janxin
2022-05-23 21:50:47 +08:00
不错,观摩一下
opentrade
2022-05-23 22:07:48 +08:00
@Buges 我们可能更想试试 flutter 的 native view ,TextureLayer 之类,当然了,我这方面也没啥经验
opentrade
2022-05-23 22:08:23 +08:00
@Buges egui 作为嵌入式 ui 的确够成熟了
ysc3839
2022-05-24 09:39:04 +08:00
能不能具体说说 Tauri 的共享内存是什么?以及 IPC 有什么问题?
opentrade
2022-05-24 12:01:55 +08:00
ysc3839
2022-05-24 14:49:11 +08:00
@opentrade 这种问题啊,一般不会用 WebView 来渲染,建议直接在 WebView 上叠一个原生窗口,然后想办法进行位置同步。
顺便看了下 Sciter 的文档,你说的是 sciter::video_destination 的 render_frame()吗?这个感觉也有性能损失的,因为走内存传输了,最好的做法是直接传递显卡硬解出来的帧,不过这么做可能不能跨进程。
sunbreak
2022-05-30 06:21:38 +08:00
https://github.com/leanflutter ,LeanFlutter 算是目前专注 Flutter Desktop 最大的组织

参见 https://github.com/leanflutter/awesome-flutter-desktop

有 Discord: https://discord.gg/Vw2v9kAN?

也有微信群,可以加微信 wk2311007

PS:字节、阿里等做 Flutter 架构的人也都在

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/854787

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX