V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
opentrade
V2EX  ›  程序员

Rust 桌面程序选 Flutter 还是 Tauri?

  •  7
     
  •   opentrade · 2022-05-16 14:06:44 +08:00 · 18193 次点击
    这是一个创建于 683 天前的主题,其中的信息可能已经有所发展或是发生改变。

    近期我们开源了 RustDesk 服务端以及移动端源代码,目前正计划将原来 Sciter 桌面端迁移到新的 UI 框架,有点在 Fluter 与 Tauri 之前犹豫,我个人比较倾向于 Tauri ,刚刚发起一个问卷调查,有兴趣可以参入一下,非常感谢。

    https://github.com/rustdesk/rustdesk/discussions/533

    第 1 条附言  ·  2022-05-18 13:13:21 +08:00
    补充一项为这个迁移项目做的招聘
    https://www.v2ex.com/t/853682
    139 条回复    2023-07-27 16:54:05 +08:00
    1  2  
    opentrade
        101
    opentrade  
    OP
       2022-05-17 18:43:24 +08:00 via Android
    @xieren58 这里不都是翻墙吗
    meetcw
        102
    meetcw  
       2022-05-17 19:12:07 +08:00   ❤️ 1
    @lijy91 #55 是的,没想到能在 v2 碰到项目维护者! leanflutter 里的包确实很好用,不过感觉有些包在 Linux 下还不是很完善。期待后续的发展!!
    hst001
        103
    hst001  
       2022-05-17 19:27:16 +08:00
    如果要求系统覆盖率的商业软件,这两个目前都不能考虑。
    timpaik
        104
    timpaik  
       2022-05-17 19:37:36 +08:00 via Android
    都不太行,flutter 是体积比 tauri/你现在的大很多,tauri 是要 webview2 运行时,用本地 chrome 依赖太多了。有需求的话建议看看 skia 绑定吧。
    opentrade
        105
    opentrade  
    OP
       2022-05-17 19:47:01 +08:00 via Android
    @hst001 的确很头疼,又要考虑覆盖,又要考虑开源生态
    mxT52CRuqR6o5
        106
    mxT52CRuqR6o5  
       2022-05-17 19:51:30 +08:00
    如果 flutter 谷歌不撒手不管的话,应该是很有前途的
    像 flutter 这种技术方案的框架,必须有大厂持续投入才能活下去,很难想象仅靠社区能持续维护下去
    bfjm
        107
    bfjm  
       2022-05-17 21:40:18 +08:00 via Android
    为啥不考虑一下 imgui 这种,跨平台,rust 也能用
    opentrade
        108
    opentrade  
    OP
       2022-05-17 21:51:21 +08:00
    @bfjm 怕从 Sciter 跳到另外一个坑
    opentrade
        109
    opentrade  
    OP
       2022-05-17 21:53:23 +08:00
    @mxT52CRuqR6o5 的确,所以选 Flutter ,选 Tauri ,一是基于 Rust 生态考虑,二是因为不是从头搞起,从头搞起一个开源公司很难撑起来,就像 Sciter 的局面。
    openmynet
        110
    openmynet  
       2022-05-17 22:00:53 +08:00
    选 Flutter ,可以看下 nativeshell 这个 crate, 需要自定义的插件可以直接使用 rust 来写
    findex
        111
    findex  
       2022-05-17 22:32:54 +08:00
    怎么又有人回来问这个问题了。上次有个老哥,就是用 rust+tauri 开发的 macos 桌面程序还发到了苹果应用商店里了。
    hronro
        112
    hronro  
       2022-05-17 23:28:45 +08:00
    如果追求稳,那就还是 Electron 吧。

    说起来这个时间点真是比较尴尬,Rust 目前确实没有什么能打的 GUI 框架。

    我个人倒是比较期待 Nathan Sobo 目前在做的一个受 Flutter 启发,全 GPU 渲染的 GUI 框架(名字貌似叫 GPUI ?)不过这个框架目前应该还处于比较早期的阶段,所以目前甚至没有开源。前段时间大火的 Warp 终端,应该也是用的这个框架。
    coolmenu
        113
    coolmenu  
       2022-05-18 01:17:47 +08:00
    如果是生产项目,目前 Electron 吧,上线优先啦。
    likeccpo
        114
    likeccpo  
       2022-05-18 09:41:36 +08:00
    vue + tauri 怎么样,我们也是刚开始写,领导给的这个方案
    opentrade
        115
    opentrade  
    OP
       2022-05-18 10:30:39 +08:00
    @likeccpo 领导都拍了,也不用多想
    lufengd3
        116
    lufengd3  
       2022-05-18 10:37:03 +08:00   ❤️ 1
    @opentrade 楼上哥们儿说了,windows 上依赖 webview2 ,如果没有的话会在安装 tarui 程序的时候提示,类似缺少 .Net Framework 那种,用户确认下载安装完成就 OK 了

    https://developer.microsoft.com/en-us/microsoft-edge/webview2/#download-section
    opentrade
        117
    opentrade  
    OP
       2022-05-18 10:46:53 +08:00
    @lufengd3 这倒也可以接受,总的用发展的眼光看问题不是
    lufengd3
        118
    lufengd3  
       2022-05-18 10:49:01 +08:00
    之前简单了解过 Sciter 项目,佩服作者,渲染引擎 Script 引擎全都自己写,很硬核,但对于 Sciter 用户来说作者就是瓶颈,老项目继续用着维护着还行,年轻有活力的项目还是早点迁出来更靠谱

    Tauri Flutter Electron QT CEF 这些都是很好的方案,特点不同,看你们最需要的能力是什么。
    opentrade
        119
    opentrade  
    OP
       2022-05-18 10:49:10 +08:00
    @opentrade 只是从用户角度,加上这个,对用户体验大大的打了折扣,尤其不懂电脑的用户。
    opentrade
        120
    opentrade  
    OP
       2022-05-18 10:49:50 +08:00
    @lufengd3 即使是我,每次看到缺少.net 这种提示,我也很烦。
    opentrade
        121
    opentrade  
    OP
       2022-05-18 10:51:14 +08:00
    @lufengd3 的确,作者就是最大的 bug ,团队没搞起来,这么大的年纪,也不会再去融资发展了。
    lufengd3
        122
    lufengd3  
       2022-05-18 10:52:27 +08:00
    @opentrade 是,这个弹窗会让非技术人员有点懵逼,虽然下一步下一步就能搞定😂
    iamzuoxinyu
        123
    iamzuoxinyu  
       2022-05-18 14:46:47 +08:00
    说真的,你们真觉得从 sciter 迁移到 webview 的方案能够复用原有的 web 端代码么?看了下原有`ui`里的代码,恐怕把 tis 的代码魔改回标准 es 代码的工作量不亚于重写一遍吧。
    opentrade
        124
    opentrade  
    OP
       2022-05-18 14:53:50 +08:00
    opentrade
        125
    opentrade  
    OP
       2022-05-18 14:54:18 +08:00
    iamzuoxinyu
        126
    iamzuoxinyu  
       2022-05-18 14:57:53 +08:00
    @opentrade 噢,原来已经做了…
    Hattle
        127
    Hattle  
       2022-05-18 15:46:33 +08:00   ❤️ 1
    @opentrade tauri 的官方文档里是有将 webview2 打包进应用里使用固定版本的教程的,不过这样的话安装包体积就会变得很大
    https://tauri.studio/v1/guides/distribution/windows
    opentrade
        128
    opentrade  
    OP
       2022-05-18 16:23:20 +08:00
    @Hattle 可以针对 win7 单独打包
    twing37
        129
    twing37  
       2022-05-18 22:58:45 +08:00
    站 rust + flutter client 一票. 这套东西 clone 过完整版的 discord. ffi 很舒坦
    iamzuoxinyu
        130
    iamzuoxinyu  
       2022-05-20 02:01:51 +08:00   ❤️ 1
    @opentrade 又看了一下,感觉还是有大坑…… sciter 自己造了一套 Reactor 框架,跟原生的 React 虽然像,但还是有太多差别,而且 css/html 的语法也是有差异,修改起来是纯体力活。如果要迁移到 webview ,迟早还是要用原生 js 重写一遍。
    iamzuoxinyu
        131
    iamzuoxinyu  
       2022-05-20 02:04:32 +08:00
    @opentrade 另外就是视频渲染方面的,如果用 canvas(2d/gl)或者 MSE 代替 sciter 的<video>实现,不知道有没有性能差距。
    chord
        132
    chord  
       2022-05-20 02:50:00 +08:00
    我一直认为远程软件应该追求稳定性、低占用、高兼容,正如国内环境,很多办公电脑依然是 WIN7 系统,甚至是老 WIN7 ,webview2 提供是在线和离线的安装方式,离线的话会导致包体积过大不方便传输,在线的话是依赖微软的服务器下载(环境你懂的),所以如果只是想追求小众化那应该考虑新的技术才会有新的噱头,如果是想做大众软件,应该考虑兼容性问题
    opentrade
        133
    opentrade  
    OP
       2022-05-20 09:27:52 +08:00
    @iamzuoxinyu 谢谢,看到了你在 github discusssion 上的回复,respect !
    opentrade
        134
    opentrade  
    OP
       2022-05-20 09:31:14 +08:00
    @chord 是的,也是我头疼的问题。
    ksedz
        135
    ksedz  
       2022-05-20 11:29:18 +08:00
    slint-ui 也是 GPL + 商业授权的,如果以后要商业化可能有一定障碍,慎用。
    iDevmonkey
        136
    iDevmonkey  
       2022-05-24 23:25:27 +08:00
    其实桌面端跨平台,.net core 也算一个不错的选择,甚至可以跨移动端;不过对于 op 来说还有迁移成本的考虑就是了;我个人现在是做 flutter 移动端开发,flutter 在 web 和桌面端还很初级;之前用.net core 基于 xamarin 写跨端项目,跨桌面端和移动端,使用 C#语言,使用起来还是不错的,而且性能有保障。
    kt080921
        137
    kt080921  
       2022-07-11 12:05:56 +08:00
    @opentrade 所以你们最终选了个啥?
    DemoJameson
        138
    DemoJameson  
       2022-08-11 23:32:09 +08:00   ❤️ 1
    loyan666
        139
    loyan666  
       246 天前
    @MakHoCheung MAUI 不敢用,太新了,害怕又成一个坑,还有那个 blazor 也是,不敢用...............wpf yyds............
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2871 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 64ms · UTC 14:24 · PVG 22:24 · LAX 07:24 · JFK 10:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.