Vercel Labs 在 GitHub 上开源了 Native SDK(仓库 vercel-labs/native),一套构建原生桌面应用的完整工具包。它的核心设计是:界面用 .native 声明式标记文件编写,逻辑用 TypeScript(也可选 Zig)编写,构建时编译成原生代码,最终二进制里没有浏览器、没有 WebView、也没有 JS 运行时。仓库已有 7.6k star、312 fork、431 次提交,最新版本 v0.10.1 于 2026 年 8 月 24 日发布,采用 Apache-2.0 许可证,目前处于 pre-1.0 阶段。
它解决什么问题
桌面应用开发长期存在一个取舍:用网页技术栈开发,界面表达自由、迭代快,但每个应用都要随身携带一个浏览器内核;用传统原生技术开发,性能和体积占优,写法却更繁琐。Native SDK 保留声明式写法的开发体验,把浏览器内核换成自己的渲染引擎,直接向真实操作系统窗口绘图。
应用由什么组成
一个 Native SDK 应用由视图、逻辑、清单三部分构成,不需要手写构建配置。视图是 .native 标记文件,负责布局、数值绑定和消息派发;逻辑是纯 TypeScript,构建时编译为原生代码;状态更新走 model / message / update 单向循环——事件产生消息,消息更新状态,状态驱动界面渲染。Zig 是一等公民,需要时可直接用 Zig 编写核心逻辑。
因为标记在构建期已编译进可执行文件,发布版二进制不携带任何解析器或解释器。官方计数器示例构建后是单个几 MB 的二进制文件。
快速上手
安装与启动只需三条命令:npm install -g @native-sdk/cli,接着 native init my_app 创建项目,再 native dev 启动开发。第二条命令会打开一个带可用计数器按钮的原生窗口。
配套命令还包括:native check 在毫秒级校验视图与 Model/Msg 的绑定是否一致;native build 产出优化后的发布二进制;native automate record/replay 录制一次会话并在无头环境按状态指纹逐帧重放,用于自动化测试。
平台支持情况
macOS 是主要开发平台,支持 Metal 呈现、系统滚动物理、原生菜单、托盘与对话框;Linux 通过确定性软件渲染器完整跑通全部示例;Windows 运行在 Win32 host 上,CI 覆盖真实输入注入。iOS 与 Android 目前处于实验阶段。各平台逐项支持情况见 native-sdk.dev/platform-support 支持矩阵。
内置示例
仓库 examples 目录提供多个零配置示例:chatbot(流式请求与可重放配置)、soundboard-ts(带音频与搜索的音乐播放器)、system-monitor-ts(实时进程监控)、notes(多栏笔记与持久化)、feed(10 万行虚拟化列表)等。内置组件目录包含按钮、标签、文本框、对话框、图表、虚拟列表等常用组件,脚手架应用首次打开即有完整排版。
当前状态与适用人群
Native SDK 尚未发布 1.0,API 仍在变动,工具包演进较快,较大改动要求先开 issue 讨论。它适合希望用声明式方式开发原生桌面应用、且能接受 pre-1.0 版本变动的开发者;需要 WebView 合成、GPU 表面或移动端嵌入的场景,仓库示例目录中另有对应示例。
表达自由的 UI 与原生性能不必二选一——用 TypeScript 与声明式标记写应用,由原生引擎完成渲染,这就是 Native SDK 提供的方案。