electron 替代品求推荐 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
CrazyBoyFeng
V2EX    Electron

electron 替代品求推荐

  •  
  •   CrazyBoyFeng 2021-06-17 05:29:22 +08:00 via Android 8065 次点击
    这是一个创建于 1576 天前的主题,其中的信息可能已经有所发展或是发生改变。
    鉴于 electron 恶名在外,我本打算找一下替代方案,但发现还真不好找。
    想要减小运行内存,要么是精简 chromium,要么是用系统浏览器。
    精简 chromium 的我就只找到一个 miniblink,不跨平台。
    用系统浏览器的也基本上都有这样那样的适配问题。
    像 sciter 这样比较成功的 web 桌面框架,不是自由开源的。使用此类框架,既要担心依赖绑定,还要担心弃坑(依赖绑定的其中一种情形)。
    总结一下需求:
    1. 跨平台兼容性高。
    2. 从 web 移植的工作量。
    3. 比 electron 省内存。
    4. 最好是自由开源的,GPL 也没关系,反正 web 网页本来就是开源的。
    其实要是 electron 有 runtime 模式也不错,多个应用共用框架,能省一些资源。可惜没有 runtime 模式。
    18 条回复    2022-06-27 19:10:34 +08:00
    tianxia
        1
    tianxia  
       2021-06-17 06:30:34 +08:00 via Android
    我也看看有没有
    yyfearth
        2
    yyfearth  
       2021-06-17 07:26:15 +08:00
    要跨平台而且保持行为一致兼容性好 那只能用 chromium 或者 webkit 并且要自带核心 那自然就小不了 资源占用就一定会大
    本来 Google 出了一个 https://github.com/GoogleChromeLabs/carlo 不错 只要安装 Chrome 就可以了 但是一样也还是弃坑了

    所以要么用系统自带的浏览器内核 要么 electron/nw.js
    有实力的话 自己去精简 chromium 内核
    kawaiidora
        3
    kawaiidora  
       2021-06-17 08:04:55 +08:00
    electron 就是为了解决平台差异才搞出来的东西,只要开发者在自己机器上弄好了,放到别的系统和机器上不会出大问题。

    electron 相当于桌面应用的 flash (指刚诞生没几年的 flash ),暂时还没有替代品。除非几家巨头达成交易,共同推进一个通用方案。

    替代品可能要过几年才会诞生
    Jirajine
        4
    Jirajine  
       2021-06-17 08:16:25 +08:00 via Android
    tauri
    banliyaya
        5
    banliyaya  
       2021-06-17 08:41:42 +08:00
    可以看看网易云音乐,在 mac 上 10M 不到,好像是套壳的 web
    Rwing
        6
    Rwing  
       2021-06-17 08:51:41 +08:00
    askfermi
        7
    askfermi  
       2021-06-17 08:54:59 +08:00
    tauri +1
    adeweb
        8
    adeweb  
       2021-06-17 08:57:46 +08:00
    Qt,除了 web 移植可能性不大,其他都表现不错。
    IvanLi127
        9
    IvanLi127  
       2021-06-17 09:03:28 +08:00 via Android
    不带完整的浏览器内核,还是别搞了,web 都支持的东西到 app 反倒不支持了。
    supermoonie
        10
    supermoonie  
       2021-06-17 09:36:03 +08:00 via iPhone
    我用的 jcef
    love
        11
    love  
       2021-06-17 10:15:11 +08:00
    现在直接用浏览器内核问题不大了吧,就象正常做网站一样
    hazardous
        12
    hazardous  
       2021-06-17 10:34:40 +08:00
    只做 webserver,然后用本地浏览器做 UI
    TrembleBeforeMe
        13
    TrembleBeforeMe  
       2021-06-17 11:50:14 +08:00
    PWA ?
    BingoXuan
        14
    BingoXuan  
       2021-06-17 13:04:41 +08:00 via Android
    pywebview
    EPr2hh6LADQWqRVH
        15
    EPr2hh6LADQWqRVH  
       2021-06-17 13:13:34 +08:00
    问题不在 Electron 身上,人家 VSCode 那个规模都不卡,你自己随便一个啥卡,问题出在哪自己还没点数么。。。
    CrazyBoyFeng
        16
    CrazyBoyFeng  
    OP
       2021-06-17 16:45:27 +08:00
    看来大家较多选择的次优方案其实还是调用系统浏览器,包括 pywebview 、tauri 这类都是,localserver 和 pwa ( PC 版小程序快应用)也算。目前 pwa 还不能操作本地文件,需要借助 service-worker,除了跟浏览器结合更紧密,其实跟 localserver 区别不大。

    我也了解了一下 electron runtime,有些 linux 发行版确实是以这种方式进行包管理。但是碎片化十分严重,每个 electron 应用依赖的版本都不同,效果提升并不明显。github 上有关 runtime 的讨论里,electron 官方也认为组件更新迭代太快,发行 runtime 的优势不显。也是因为迭代太快,对 chromium 进行精简也跟不上更新的速度。chromium 本身耦合也非常紧密,拆分成模块是比较困难的工作。( chromium 里其实有很多有很多对于发布应用来说是没用的可以删除的功能,例如打印当前页、pdf 查看和保存为 pdf 、截图、crx 扩展、调试等等,所以能做出来 miniblink 的作者还是很有水平的,至少把 chromium-windows 吃透了)
    a132811
        17
    a132811  
       2022-05-05 21:24:19 +08:00
    pwa 可以操作本地文件了
    https://whatpwacando.today/file-system
    wjx0912
        18
    wjx0912  
       2022-06-27 19:10:34 +08:00
    sciter 有开源版啊,几百美金
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5792 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 06:16 PVG 14:16 LAX 23:16 JFK 02:16
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86