Rust 写的 App 终于能进手机了:拆解 gpui-kit 0.6.2,这次升级凭什么被称作分水岭?

发布时间:2026/10/24 19:55:53
Rust 写的 App 终于能进手机了:拆解 gpui-kit 0.6.2,这次升级凭什么被称作分水岭?

Rust 写的 App 终于能进手机了:拆解 gpui-kit 0.6.2,这次升级凭什么被称作分水岭?

【免费下载链接】gpui-kitRust GUI components for building fantastic cross-platform desktop application by using GPUI.项目地址: https://gitcode.com/GitHub_Trending/gp/gpui-kit

最近做桌面软件的那拨程序员,聊天里频繁出现一个名字:gpui-kit。

起因很简单,这个用 Rust 语言写界面的开源组件库,在 0.6.2 版本里第一次把“手机”两个字正式写了进去——iOS 和 Android 的平台定义补齐了,和 gpui-mobile 的适配也走通了。同时还塞进了三个新玩意:跑马灯、输入组、Markdown 内联插件。

有博主直接下结论:这是 gpui 生态第一次出现“能真正拿去做多端产品”的组件库,算得上一道分水岭。

这话到底有几分真?咱们不聊代码,就用大白话把它拆开看看。

一、先说清楚:gpui-kit 到底是个啥?

你可能没听过 GPUI,但你大概率听过 Zed——那个号称“比 VS Code 还快”的代码编辑器。Zed 的界面就是用自家这套 GPUI 渲染引擎画的,特点是直接吃显卡、跑得飞快、还能做到 120 帧。

打个比方:GPUI 是钢筋水泥和承重墙,负责“怎么把像素高效画到屏幕上”;而 gpui-kit 是精装修团队,把门窗、开关、插座、橱柜全都做好摆齐。

官方说法是提供了 75 个以上开箱即用的组件:按钮、表格、对话框、日期选择器、代码编辑器、可拖拽的分栏布局……你盖房子时不用自己烧砖,直接挑家具就行。

以前它有个明确身份:桌面专用。macOS、Windows、Linux 一套代码通吃。

而 0.6.2 干的事,是把这套精装修家具,第一次往手机屏幕里搬。

二、移动端适配,究竟改了什么?

很多外行以为“适配手机”就是界面缩一缩、按钮排一排。真不是。这里面有三层功夫。

第一层:先得让程序知道“我在手机上”。

gpui-kit 加了一个很朴素的判断——编译的时候就知道目标是 iOS 还是 Android,而不是等运行起来量一下屏幕宽度去猜。这就像装修前先确认“这是住宅还是商铺”,后面的水电走线才不至于全错。

第二层:把渲染的底盘接到手机上。

手机不像电脑,没有现成的窗口系统。这一步靠的是社区项目 gpui-mobile 打的地基:它负责提供窗口、触摸输入、字体排版和那块能被 GPU 直接绘制的“画布”。Rust 这边只管画界面、管状态,两边各干各的活。

第三层,也是最聪明的一层:不硬碰硬,做“混血”。

gpui-kit 没有狂妄地说“整个 App 都用我画”。它的做法是:导航栏、底部输入框这些用户早就形成肌肉记忆的部分,交给原生系统;中间那块内容区,用 GPUI 渲染成一个普通视图塞进去。

于是你在 iPhone 上看到的,是一个“外壳很 iOS、内核很 Rust”的界面。既保留了系统该有的手感,又把高性能渲染用在了刀刃上。

细节上还有一堆“只有真上手才会疼”的补丁:

  • 电脑上鼠标悬停会冒出提示气泡,手机上根本没有“悬停”这回事,于是移动端干脆把这类浮层提示关掉;
  • 卡片类组件改成“点一下开、点一下关”,手指划过不会乱弹;
  • 输入框和文本域支持长按选词、双击选词,配触摸手柄和编辑菜单;
  • 键盘弹出来时,界面知道“可视区域变小了”,不会把发送按钮压在键盘底下;
  • 刘海屏、底部横条这些安全区,交给原生容器去处理,不在 Rust 里重复垫一层。

这些听着琐碎,但恰恰是“能不能真用”和“能不能跑个 Demo”的分界线。

三、三个新组件,才是普通人能感知到的部分

跑马灯,就是那种文字缓缓横向滚动的效果。别小看它,直播间的公告、股票软件的行情条、车站大屏的到站信息,全靠它。以前开发者得自己写动画逻辑,现在拿来就用。

输入组,则是把输入框和周围的东西打包成一个整体:左边放搜索图标,右边放“清空”按钮和字数统计,或者干脆嵌一个下拉选择。你天天用的搜索框、登录框、验证码输入,本质都是这个结构。它解决的是“对齐”这个折磨人的老问题——图标和文字总差那么一两个像素,做前端的都懂。

Markdown 内联插件,这个最有想象空间。

普通的 Markdown 只能显示文字、加粗、代码块。而“内联插件”允许你在文字流中间插入一个自定义元素,比如一段股票代码,直接渲染成一张带实时价格的小卡片;或者一句话后面跟一个可点击的按钮。

这就像是给文章开了个“活口”:文字不再是死的,能嵌进图表、行情、操作按钮。做 AI 聊天客户端的人应该会眼前一亮——AI 回复里提到一只股票、一个链接、一段数据,都可以就地变成可交互的模块,而不是干巴巴的一行字。

四、它牛在哪,又别吹过头

先看成绩:Zed 同源的渲染引擎、75+ 组件、能扛几十万行数据的表格和代码编辑器、支持网页端运行、还带无障碍和界面自动化测试。这些是实打实的。

上图就是一个基于它做的 Git 客户端演示,左边分支树、中间提交图谱、右边详情面板,都是现成组件拼出来的效果。

但“分水岭”这三个字,得冷静看。

官方文档自己写得很克制:移动端目前是实验性质。真正被完整验证过的场景只有一个——AI 聊天界面,用到了文本视图、按钮、菜单、弹层、滚动条、输入框这些组件,在 iOS 和 Android 上都跑过功能和性能测试。其他组件、以及完整的手机应用布局,还没验证。

而且跑通的是模拟器,不是真机。官方也提醒:模拟器只能看布局和交互,不能拿来吹帧率。

所以准确的说法是:0.6.2 不是“手机 App 随便做”的通行证,而是第一次让这套组件库有了跨端的公共底座。天花板被顶开了一条缝,但离拎包入住还有距离。

顺带说个背景。有社区文章提到,GPUI 官方发布节奏长期偏慢,导致组件库被迫自己维护分支,最后演化出了 gpui-kit 这样的项目。有人把它比作 Flutter 早期的分叉往事——生态能不能稳住,从来不只取决于技术好不好,还取决于发布机制靠不靠谱。

五、普通人能玩吗?门槛说实话不低

想体验的话,最快的方式是去看官方的组件展示页,网页上就能点、能拖、能选,不用装任何东西。这对产品经理和设计师特别友好——想看看某个按钮长啥样,直接点开就行。

但真要自己动手做一个手机 App,门槛还是硬的:

  • 得有 Mac 和 Xcode 才能折腾 iOS;
  • 得会 Rust,还得会一点点 Swift 做外壳;
  • 目前更适合“在已有的原生 App 里嵌一块高性能界面”,而不是从零做一个完整手机应用。

换句话说,它不是给普通用户装个软件就能用的工具,而是给开发团队省几个月工期的地基。真正受益的,是那些做 AI 客户端、金融行情、代码编辑器、数据密集型工具的团队——他们既想要原生级的流畅,又不想为三个平台各养一套人马。

而对咱们普通用户来说,好处是间接的:以后手机里可能会多出一批体积小、启动快、滑动不卡顿的 App,而不是一个个套着浏览器内核、动辄几百兆的“网页壳子”。

写在最后

Rust 做界面这件事,过去一直被吐槽“能跑,但不敢用在正式产品上”。gpui-kit 0.6.2 的意义,大概就是把“敢不敢”往“敢”那边推了一格:桌面、网页、手机,开始共用同一套组件语言。

当然,实验性就是实验性,真机性能、复杂布局、各种机型的适配,都还得靠时间验证。分水岭是不是真的立住了,得看接下来几个版本能不能把“只验证了一个聊天场景”变成“常用场景全覆盖”。

留个问题给大家聊聊:如果有一款软件,比现在的主流方案省一半内存、启动快一倍,但界面细节没那么花哨,你愿意换吗?或者说,你觉得手机 App 现在最让你受不了的,是卡、是臃肿,还是广告太多?评论区见。

【免费下载链接】gpui-kitRust GUI components for building fantastic cross-platform desktop application by using GPUI.项目地址: https://gitcode.com/GitHub_Trending/gp/gpui-kit

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考