V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
EyebrowsWhite
V2EX  ›  程序员

wails 相比 electron 优缺点有哪些呢

  •  
  •   EyebrowsWhite ·
    eyebrowkang · 2022-05-27 11:01:54 +08:00 · 6491 次点击
    这是一个创建于 945 天前的主题,其中的信息可能已经有所发展或是发生改变。

    看到本站有不少用wails做的工具,想问问 wails 相比 electron 优缺点有哪些呢(比如稳定性、开发上手难度、安全等方面)?

    假如说有一个 vue 的 web 端网站,现在要增加桌面端,这两种工具哪个会更方便迁移呢?

    第 1 条附言  ·  2022-05-27 13:29:42 +08:00

    我用wails 构建一个应用发现它需要等前端build ,而且似乎没有热更新,不知道是不是没用对。大伙有没有用过的

    29 条回复    2023-12-11 13:36:03 +08:00
    iamzuoxinyu
        1
    iamzuoxinyu  
       2022-05-27 11:13:46 +08:00 via Android
    还真有人拿 go 写桌面客户端啊…
    star7th
        2
    star7th  
       2022-05-27 11:19:04 +08:00
    如果你是新人,那么用 electron
    如果你是前端开发者,那么用 electron
    只有 go 开发者才有必要用 wails , 不是 go 开发者就不用考虑了。
    star7th
        3
    star7th  
       2022-05-27 11:23:00 +08:00   ❤️ 1
    electron 配套的生态完善一些,以后可能想做什么都容易搜索到解决方案。比如打包,升级什么的。
    electron 的缺点也是明显的,安装必体积大,性能没那么高。但在带宽和电脑性能都蛮高的今天,其实这也不算非常大的问题。你自己根据自己的场景考虑,如果自己的产品非常难容忍这么大的体积和性能,就别用 electron 了
    EyebrowsWhite
        4
    EyebrowsWhite  
    OP
       2022-05-27 11:26:45 +08:00
    @iamzuoxinyu #1 据我初步了解的 wails 其实用的还是前端 vue 、react 之类的写界面,只是能和 go 更好的配合
    murmur
        5
    murmur  
       2022-05-27 11:26:46 +08:00
    @star7th electron 的问题不是带了大半个 chrome 么,你 go 带大半个 chrome 你也体积大
    star7th
        6
    star7th  
       2022-05-27 11:28:43 +08:00
    @murmur wails 好像是不带 chrome 的,它声称是原生本地引擎。
    EyebrowsWhite
        7
    EyebrowsWhite  
    OP
       2022-05-27 11:30:43 +08:00
    @star7th #3 这么看来的话,wails 除了体积和性能之外似乎没有很明显的优势,那 wails 相比 electron 能有多大的性能(体积)优势呢?
    EyebrowsWhite
        8
    EyebrowsWhite  
    OP
       2022-05-27 11:32:51 +08:00 via iPhone
    @star7th wails 用的是 safari 的内核吧
    iamzuoxinyu
        9
    iamzuoxinyu  
       2022-05-27 11:33:53 +08:00
    @EyebrowsWhite 嗯,看起来跟 rust 这边的 tauri 差不多。我主要吐槽的是 FFI 上,因为有两套 GC 两套 runtime ,js 和 go 交互起来会有扯不清的问题。
    murmur
        10
    murmur  
       2022-05-27 11:40:13 +08:00
    @EyebrowsWhite 那就是不兼容 windows 呗。。。
    ysc3839
        11
    ysc3839  
       2022-05-27 11:46:19 +08:00 via Android
    感觉和 tauri 差不多,主要问题都是后端要用另一种语言写,不是 Node.js ,这样对曾经从事前端的开发者不友好。
    个人认为现在有必要搞个 Node.js+系统自带 WebView 的方案,这样可以解决 Electron 体积大的问题(Linux 下解决不了,因为系统没 WebView)。不过似乎一直没人搞,可能是大多数人其实不在乎体积问题。
    murmur
        12
    murmur  
       2022-05-27 11:48:27 +08:00
    @ysc3839 你要想大规模推开,windows 要兼容 win7 ,毕竟是网吧主流系统,网吧虽然不入流,但是各类流氓预装很看好网吧

    win7 你用啥 webview
    qq1340691923
        13
    qq1340691923  
       2022-05-27 11:56:14 +08:00
    好东西,后续可以把我的 esview 重写成桌面端了 https://github.com/1340691923/ElasticView
    kytrun
        14
    kytrun  
       2022-05-27 11:57:41 +08:00
    我还想要 Deno + WebView 的方案
    ysc3839
        15
    ysc3839  
       2022-05-27 12:25:42 +08:00 via Android
    @murmur Edge WebView2 和 CEF 都可以
    iamzuoxinyu
        16
    iamzuoxinyu  
       2022-05-27 12:57:24 +08:00
    @iamzuoxinyu 而且涉及到一些原生操作,go 还是要跟 c 打交道,go 跟 c 的交互远远比不上 node/rust 。别的不说,光 windows 上的 cgo 就够你喝一壶的。
    yanjieee
        17
    yanjieee  
       2022-05-27 13:02:44 +08:00
    在 python 上面搭配 pywebio 可以让不懂前端的人员写出一个简单交互的程序,不知道 go 有没有类似的方案?
    wangtian2020
        18
    wangtian2020  
       2022-05-27 13:26:55 +08:00
    现代前端基本都会 nodejs 能写 electron
    wails 的最大缺点就是我不会 go
    EyebrowsWhite
        19
    EyebrowsWhite  
    OP
       2022-05-27 13:27:06 +08:00 via iPhone
    @murmur 兼容 win10/win11 ,他使用的原生的,所以我在 mac 打开以为是 safari
    zachgenius
        20
    zachgenius  
       2022-05-27 14:21:02 +08:00
    不知道有没有人用过 Tauri
    a1114262301
        21
    a1114262301  
       2022-05-27 18:01:21 +08:00
    @EyebrowsWhite webview2
    evilStart
        22
    evilStart  
       2022-05-27 18:05:23 +08:00 via Android
    @ysc3839 你在搞笑吗? WebView 不就又回到前端老生常谈的兼容性问题了? electron 就是可以避免这种问题
    ysc3839
        23
    ysc3839  
       2022-05-27 18:43:26 +08:00
    @evilStart 不是我在搞笑,说 Electron 体积大的人不是我,我只是转述一下某些人的需求而已,我自己觉得 Electron 体积大无所谓
    Buges
        24
    Buges  
       2022-05-27 19:58:31 +08:00 via Android
    @ysc3839 taur i+ deno binding 符合你的描述。
    但无法达到 electron/nwjs 的那种十分方便 context integration 效果,即网页里的 js 脚本随意调用 node api 。
    hervey0424
        25
    hervey0424  
       2022-05-28 14:32:45 +08:00
    首选 Electron , 如果不行直接用 winform 更好
    00ing
        26
    00ing  
       2022-05-29 10:34:14 +08:00
    go 用 govcl
    sunmoon1983
        27
    sunmoon1983  
       2023-12-08 13:11:32 +08:00
    sunmoon1983
        28
    sunmoon1983  
       2023-12-08 13:12:02 +08:00
    @star7th 我前端和 go 都会,要怎么选?不知道 wails 坑多不多
    star7th
        29
    star7th  
       2023-12-11 13:36:03 +08:00
    @sunmoon1983

    依然推荐使用 electron
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3041 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 10:59 · PVG 18:59 · LAX 02:59 · JFK 05:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.