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

使用 Rust 来制作前端 UI 库,会不会快?

  •  
  •   lizy0329 · 3 天前 · 4719 次点击

    有类似的 rust UI 库观摩下吗?

    43 条回复    2025-09-04 20:10:04 +08:00
    duanxianze
        1
    duanxianze  
       3 天前   ❤️ 9
    啊?魔怔了啊,现有的任何语言做 ui 都不会比 html css 更快
    chenxiaolani
        2
    chenxiaolani  
       3 天前
    有意义嘛,
    nkidgm
        3
    nkidgm  
       3 天前   ❤️ 1
    没意义,除非想统一技术栈,一门语言走天下。
    githmb
        4
    githmb  
       3 天前   ❤️ 1
    不会快,一般都是宏来生成 html ,但是现在 IDE 对宏的支持太差了,没有智能提示
    binhb
        5
    binhb  
       3 天前
    xFrye
        6
    xFrye  
       3 天前   ❤️ 3
    不会,不要为了 rust 而 rust
    skyworker
        7
    skyworker  
       3 天前   ❤️ 5
    手里只有一把锤子, 然后感觉所有的问题都是钉子
    musi
        8
    musi  
       3 天前
    rust 在浏览器上不是一等公民,所以你的 rust 代码最终会被转义成 HTML + CSS + JavaScript
    zhhcnn
        9
    zhhcnn  
       3 天前
    瓶颈在 dom 而不是操作 dom 的语言,js 真不算慢了
    QlanQ
        10
    QlanQ  
       3 天前
    平时觉得慢的地方,主要是 浏览器渲染 dom 慢吧
    jspatrick
        11
    jspatrick  
       3 天前
    你指的是开发快还是运行快?开发快还能快过 html css ?运行快似乎也不在乎这点。。。
    cwliang
        12
    cwliang  
       3 天前   ❤️ 1
    这是正经前端问的问题?
    kzfile
        13
    kzfile  
       3 天前
    我还以为是 gui,原来指的是 web 前端吗
    janus77
        14
    janus77  
       3 天前
    速度瓶颈不在 UI 库,在渲染层,甚至硬件层
    shui14
        15
    shui14  
       3 天前
    如果做 imgui ,值得。否则不比 html 有优势,除非你有特殊需求,另外 webgl/webgpu+svg 或者 webcompontent 也可以做 html 版的 imgui ,把那个 pdfjs 的 layout 移植过来就行,甚至在 react 还在 createclass 时代就有人这么干过,把 ios 的布局移植的,相当于实现了在 webgl2 上的 flex 。再早之前,有个 react-canvas ,你搜一下思路一样的。前几年流行的长 table ,某个库 canvas table 可以说就从这里来的。无非现在准备 rust 替代,这个成本就看值不值,技术上肯定是可行的,十年前创业浪潮就有过很多五花八门的,而且不少公司现在就在这么干
    mizuki9
        16
    mizuki9  
       3 天前   ❤️ 2
    用 rust 原生,要考虑跨平台兼容性,要考虑前端非常多的功能特性能支持多少,做到同样的特性需要的代码量是不是值得
    wangtian2020
        17
    wangtian2020  
       3 天前
    没有意义的快,leetcode 我能花 10 分钟写倒数 10%内存占用/倒数 10%CPU 使用 的答案,我就不会花 1 小时去写 前 10% 的答案
    hwdq0012
        18
    hwdq0012  
       3 天前
    gui 这块,win32 , android ndk, mac/ios object c , 哪个不是 c++,非要搞 rust
    frank42a
        19
    frank42a  
       3 天前   ❤️ 1
    作死
    Track13
        20
    Track13  
       3 天前
    啊?是我没看懂吗?不管你拿什么写,最后跑的不还是 html ,css ,js ?怎么个快法?
    ZZITE
        21
    ZZITE  
       3 天前
    webszy
        22
    webszy  
       3 天前
    你拿 rust 写一个游览器内核,然后只能渲染 rust 代码不就行了
    chiaf
        23
    chiaf  
       3 天前 via iPhone
    rust 写一个超过 V8 的引擎。有搞头。

    或者 rust 重写 V8 😁
    chesha1
        24
    chesha1  
       3 天前
    rust 也没法直接写 UI 啊,要硬写需要需要编译成 web components 之类的东西,性能会更差

    你看现在主流的 UI 库,对应多个框架,都是有多个版本的,就是为了借用框架本身的运行时提高性能,你直接不管这个了,肯定是不行的
    flyqie
        25
    flyqie  
       3 天前 via Android
    要想快的话建议 rust 重写 v8 ,不然用 rust 没有什么意义,也不会快
    yigefanqie
        26
    yigefanqie  
       3 天前
    建议用 rust 去写一个浏览器内核,就快了。
    irisdev
        27
    irisdev  
       3 天前
    这个问题跟之前在 v 站上看到的问题。“为什么前端不用 rpc 调用后端”有异曲同工之妙
    Goooooos
        28
    Goooooos  
       3 天前
    你说的是不是 tauri
    jujusama
        29
    jujusama  
       3 天前
    但凡有能用的 rust UI ,大概 zed 也不用从 0 写一个把
    iorilu
        30
    iorilu  
       3 天前
    你说的前端是指 web 端还是说图形界面 gui 那种
    lizy0329
        31
    lizy0329  
    OP
       3 天前
    我想看看,现在的车机 UI, 如果追求稳定性与速度, 是不是使用 rust 来制作 UI 比较靠谱点
    iorilu
        32
    iorilu  
       3 天前   ❤️ 1
    @lizy0329 车机好像不少是 QT 或者 flutter 做的
    daniel11
        33
    daniel11  
       3 天前   ❤️ 1
    可以看看 zed 开源的 GPUI ,长桥开源了一个 GPUI 的组件库 https://github.com/longbridge/gpui-component?tab=readme-ov-file , 看他们基于这个组件库做的 股票交易 客户端还行
    liuidetmks
        34
    liuidetmks  
       3 天前
    你肯定是鸡丁
    iliaoliao
        35
    iliaoliao  
       2 天前   ❤️ 1
    可以看看 dioxus 快要发布的 0.7 版本,和写 react 差不多,开发 native 的时候支持热重载。很强。
    labdum
        36
    labdum  
       2 天前
    webkit 和 blink 都是 c++写的吧。rust 也不会更快,顶多安全点。
    如果是机车 UI 也可以用 swift 吧,swift 现在也有在做嵌入式的开发。
    sjhhjx0122
        37
    sjhhjx0122  
       2 天前
    @iorilu #32 车机不是还有很多直接 unity 和 godot 的吗
    charlie21
        38
    charlie21  
       2 天前
    https://github.com/iced-rs/iced
    cross-platform GUI library for Rust focused on simplicity and type-safety
    Chuckle
        39
    Chuckle  
       2 天前
    期待 rustscript
    dssxzuxc
        40
    dssxzuxc  
       2 天前
    @Chuckle #39 我想象中的 rustscript 差不多长这样

    let a: Owned<string> = "hello"
    let b = a
    console.log(a) // 编译失败

    let c: Shared<string> = "world"
    let d = c
    console.log(c) // 编译成功

    const e = (s: &string) => {}
    const f = (s: &mut string) => {}

    // 异步生命周期
    async function g<'async>(data: &'async data) {}

    // 安全访问 dom 元素
    document.getElementById("h")?.with_mut(|el| el.textContent = "hello world")
    hez2010
        41
    hez2010  
       1 天前   ❤️ 1
    简单的 hello world 可以,但是但凡正经一点的 UI 用 rust 就是自找不痛快,包括游戏、GUI 都是同理。
    UI 的特性天生就是共享状态需要允许多方同时持有非只读引用,然而 Rust 不会允许你这么做,于是最后你不得不把整个 ECS 那套搬进 GUI 开发里,最后带来的反而是生产力下降。
    lizy0329
        42
    lizy0329  
    OP
       18 小时 58 分钟前
    @hez2010 我找到了这篇文章 [Entity-Component-System architecture for UI in Rust]( https://raphlinus.github.io/personal/2018/05/08/ecs-ui.html)
    hez2010
        43
    hez2010  
       8 小时 13 分钟前
    @lizy0329 是的,UI 开发里 ECS 在其它语言里都是可选项,而且有比 ECS 更直观和方便的做法;但是在 Rust 中 ECS 是必须项,没这玩意你写不出代码。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   949 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 20:23 · PVG 04:23 · LAX 13:23 · JFK 16:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.