Repolode
oneo-me

oneo-me/nsgo

用 Go 编写应用逻辑、由各平台原生控件渲染的跨平台 UI 引擎。

Star
198
Fork
9
未关闭 Issue
1
最近提交
20小时前

这是什么?

NSGo 让开发者用 Go 编写用户界面。应用逻辑、由信号、memo 和 effect 构成的响应式图,以及 flexbox 与 grid 布局都在 Go 中运行,各平台则使用自身的原生视图和文本绘制界面,而不是自绘画布。它是 Rust 框架 Native Shell(NSH)的 Go 移植版,设计思路相同。

项目面向 iOS、Android、macOS、Windows、Linux 和 Web,覆盖文本、图片、画布、着色器、动画、服务以及无样式的基础组件。应用可以用 Go 编写,也可以用 TSX 编写并使用 Tailwind CSS 类名样式。nsgo 命令行工具负责构建、运行和测试应用,开发时支持热重载,并可为各平台生成发布包;测试既支持无窗口模式,也支持带截图的真实窗口测试。

项目仍处于早期阶段,尚无稳定版本和稳定 API。NSGo 视图也可嵌入已有的 iOS、Android 或 Go 桌面应用中。

核心功能

  • 01使用 Go 编写的信号、memo 和 effect 响应式状态
  • 02flexbox 与 grid 布局,由各平台原生视图渲染
  • 03支持 iOS、Android、macOS、Windows、Linux 和 Web
  • 04可用 TSX 配合 Tailwind CSS 类名编写应用
  • 05支持无窗口测试,也支持带截图的真实窗口测试
  • 06开发时热重载,并可为各平台生成发布包

适用场景

  • 用 Go 开发在各平台都具有原生外观的跨平台应用
  • 在已有的 iOS、Android 或桌面应用中嵌入 Go 构建的界面
  • 希望采用 NSH 设计模式但不想编写 Rust 的团队

快速上手

  1. 1

    检查环境要求:macOS,安装 Xcode 与 Go 1.26 或更高版本

  2. 2

    将 nsgo 工具添加到你的模块中

    go get -tool github.com/oneo-me/nsgo/cmd/nsgo
  3. 3

    使用 dev 命令运行一次应用

    go tool nsgo dev

使用前须知

  • NSGo 尚处于早期阶段,还没有正式发布版本或稳定的 API。
  • 完整的开发目标需要在安装了 Xcode 的 macOS 上进行。
  • 部分目标需要额外工具,例如 Android 需要 adb,x86_64 模拟器需要 Android NDK。

收录于专题

标签

常见问题

nsgo 是什么?
用 Go 编写应用逻辑、由各平台原生控件渲染的跨平台 UI 引擎。 NSGo 让开发者用 Go 编写用户界面。应用逻辑、由信号、memo 和 effect 构成的响应式图,以及 flexbox 与 grid 布局都在 Go 中运行,各平台则使用自身的原生视图和文本绘制界面,而不是自绘画布。它是 Rust 框架 Native Shell(NSH)的 Go 移植版,设计思路相同。
nsgo 可以免费使用吗?用的什么许可证?
nsgo 以 Other 许可证开源。用于商业产品前,请先确认许可证条款。
nsgo 还在维护吗?
活跃维护中。nsgo 最近一次提交是在 2026年11月6日。
nsgo 适合用来做什么?
用 Go 开发在各平台都具有原生外观的跨平台应用 在已有的 iOS、Android 或桌面应用中嵌入 Go 构建的界面 希望采用 NSH 设计模式但不想编写 Rust 的团队
nsgo 怎么安装和运行?
检查环境要求:macOS,安装 Xcode 与 Go 1.26 或更高版本 将 nsgo 工具添加到你的模块中: go get -tool github.com/oneo-me/nsgo/cmd/nsgo 使用 dev 命令运行一次应用: go tool nsgo dev
在哪里获取 nsgo?
源代码和安装说明在 GitHub 上:https://github.com/oneo-me/nsgo

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目