原生,不是浏览器
macOS 调用 Cocoa 与 Metal,Windows 调用 Win32 与 Direct3D 11,Linux 调用系统自带的 XCB 与 Vulkan 库。应用只链接系统框架和 Go 运行时,别无其他。
macOS · Windows · Linux
Viva 直接通过各操作系统自己的接口和 GPU 绘制窗口、文字与组件。没有 WebView,没有浏览器引擎,也没有捆绑的运行时;应用空闲时完全不做事。
下面的控件是编译成 WebAssembly 的生产 Go 组件,不是 HTML 仿制品。浏览器版本用 Canvas2D 绘制;原生版本使用 Metal、Direct3D 11 或 Vulkan。
macOS 调用 Cocoa 与 Metal,Windows 调用 Win32 与 Direct3D 11,Linux 调用系统自带的 XCB 与 Vulkan 库。应用只链接系统框架和 Go 运行时,别无其他。
未变化的一帧不做布局、不重建场景、不向 GPU 提交任何东西。默认没有后台定时器和轮询。
viva add 把组件的 Go 源码复制进你的项目。没有组件注册表,运行时也没有样式表解析器:组件就是可以随意修改的普通 Go 代码。
无头驱动用显式调用运行真实的绘制器、输入路由和焦点规则,在 macOS 上还能截取窗口会显示的像素,测试不需要桌面会话。
macOS 使用 Cocoa 与 Metal,Windows 使用 Win32 与 Direct3D 11,Linux 使用 X11 与 Vulkan。应用只链接系统框架和 Go 运行时,别无其他。
Viva 面向 macOS、Windows 和 Linux。移动端不在范围内,所以桌面 API 不会为了给移动端留门而被削弱。
每个数字都引自仓库里的基准报告,写明了机器和构建方式——你可以自己重新跑一遍。
Cocoa · Metal · CoreText
原生文本输入,支持中文输入法组合;无障碍、状态栏图标,可打包为 .app、.zip 与 .dmg。
Win32 · Direct3D 11 · DirectWrite
原生窗口、Direct3D 渲染、系统文字,以及 amd64 与 arm64 打包构建。
X11 · Vulkan · Pango/Cairo
通过系统 XCB 与 Vulkan 库使用 X11,Pango/Cairo 文字,并提供打包构建。