基于 GPUI 的 Rust 桌面 GUI 组件库,提供 75 个以上样式组件,用于构建跨平台应用。
longbridge/nsh
基于 Rust 的原生跨平台 UI 引擎,可用 Rust 或 TSX 编写应用,并使用各平台原生控件渲染。
- Star
- 518
- Fork
- 31
- 未关闭 Issue
- 20
- 最近提交
- 2小时前
这是什么?
NSH(Native Shell)是一个用 Rust 编写的引擎,用于构建跨平台应用和 AI 生成的界面。开发者可以用 Rust、TSX,或两者混合编写应用。各平台使用自身的 UI 框架渲染:iOS 使用 UIKit,Android 使用原生 View,macOS 使用 AppKit,Windows 使用 Win32 与 Direct2D,Linux 使用 GTK 4,GPUI 应用使用 GPUI,Web 端使用 HTML。
NSH 既可以嵌入已有的原生应用,与地图、网页视图等组件并存,也可以打包为独立应用或静态网站。宿主应用还可以在运行时以插件形式加载 TSX 模块,模块以签名包分发,并在宿主配置能力的沙箱中运行。
项目提供响应式引擎、flexbox 与 grid 布局、无样式的基础组件层、Tailwind 风格的类名,以及用于创建、运行和打包应用的 `nsh` 命令行工具。TSX 项目支持保留状态的热更新。
核心功能
- 01可用 Rust、TSX 或两者混合编写应用,共享同一响应式引擎和布局系统。
- 02在 iOS、Android、macOS、Windows、Linux、GPUI 和 Web 上使用各平台原生 UI 渲染。
- 03可嵌入已有原生应用,也可打包为独立应用或静态网站。
- 04在宿主配置的沙箱中运行时加载签名的 TSX 模块。
- 05提供无样式基础组件层和 Tailwind 风格类名,便于自定义设计。
- 06TSX 项目支持热更新,并提供统一的 `nsh` 命令行工具用于构建和打包。
适用场景
- 在已有 iOS 或 Android 应用中加入原生风格的界面或插件,无需整体重写。
- 用一套代码库发布到多个桌面和移动平台,并使用各平台原生控件。
- 以签名 TSX 包的形式向正在运行的应用推送界面更新。
- 用 TSX 和 Tailwind 类名运行 AI 生成的界面。
快速上手
- 1
用 Homebrew 安装 nsh
brew install longbridge/tap/nsh - 2
创建一个 TSX 应用
nsh init my-app --template ts - 3
在 macOS 上运行应用
nsh run my-app --target macos
使用前须知
- 项目仍处于早期 0.1.x 版本,可能出现破坏性变更。
- iOS、Android 等目标平台需要额外的工具链,例如 Xcode 或 Android SDK。
标签
常见问题
- nsh 是什么?
- 基于 Rust 的原生跨平台 UI 引擎,可用 Rust 或 TSX 编写应用,并使用各平台原生控件渲染。 NSH(Native Shell)是一个用 Rust 编写的引擎,用于构建跨平台应用和 AI 生成的界面。开发者可以用 Rust、TSX,或两者混合编写应用。各平台使用自身的 UI 框架渲染:iOS 使用 UIKit,Android 使用原生 View,macOS 使用 AppKit,Windows 使用 Win32 与 Direct2D,Linux 使用 GTK 4,GPUI 应用使用 GPUI,Web 端使用 HTML。
- nsh 可以免费使用吗?用的什么许可证?
- nsh 以 Other 许可证开源。用于商业产品前,请先确认许可证条款。
- nsh 还在维护吗?
- 活跃维护中。nsh 最近一次提交是在 2026年10月21日。
- nsh 适合用来做什么?
- 在已有 iOS 或 Android 应用中加入原生风格的界面或插件,无需整体重写。 用一套代码库发布到多个桌面和移动平台,并使用各平台原生控件。 以签名 TSX 包的形式向正在运行的应用推送界面更新。 用 TSX 和 Tailwind 类名运行 AI 生成的界面。
- nsh 怎么安装和运行?
- 用 Homebrew 安装 nsh: brew install longbridge/tap/nsh 创建一个 TSX 应用: nsh init my-app --template ts 在 macOS 上运行应用: nsh run my-app --target macos
- 在哪里获取 nsh?
- 源代码和安装说明在 GitHub 上:https://github.com/longbridge/nsh
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
用 Rust 编写的轻量原生 Spotify 桌面客户端,支持本地播放与 Spotify Connect,覆盖 Linux、macOS 和 Windows。
用 Rust 构建小巧、高性能的桌面和移动应用,前端可使用任意可编译为 HTML/JS/CSS 的框架。
一个用 Go 构建跨平台桌面应用的框架,前端可使用 React、Vue、Svelte 等 Web 技术。
一个基于 PyQt/PySide 的跨平台无边框窗口库,支持自定义标题栏和原生模糊效果。
用 Rust 编写的开源远程桌面软件,可自建服务器,是 TeamViewer 的开源替代方案。