Rustでデスクトップやモバイルアプリを構築するための、クロスプラットフォーム対応の宣言的なネイティブGUIライブラリ。
oneo-me/nsgo
アプリのロジックをGoで実行し、各プラットフォームが独自のネイティブビューで描画するクロスプラットフォームUIエンジン。
- スター
- 198
- フォーク
- 9
- 未解決の Issue
- 1
- 最終コミット
- 7 時間前
これは何?
NSGoを使うと、Goでユーザーインターフェースを構築できます。アプリのロジック、signals、memos、effectsで構成されるリアクティブグラフ、flexboxやgridによるレイアウトはすべてGoで実行されます。一方、各ターゲットプラットフォームは独自のネイティブビューとテキストで描画するため、独自のcanvasは使いません。これは、同じ設計思想を持つRust製フレームワークNative Shell(NSH)のGo移植版です。
iOS、Android、macOS、Windows、Linux、Webを対象とし、テキスト、画像、canvas、シェーダー、アニメーション、サービス、スタイルを持たない基本コンポーネントに対応しています。アプリはGo、またはTailwind CSSクラスでスタイルを指定したTSXで記述できます。nsgoコマンドでアプリのビルド、実行、テストができ、開発時のホットリロード、プラットフォームごとのリリースパッケージ作成に対応します。また、ヘッドレステストに加えて、スクリーンショットを使った実ウィンドウでのテストも行えます。
プロジェクトはまだ初期段階で、安定版リリースも安定したAPIもありません。既存のiOS、Android、Go製デスクトップアプリへのNSGoビューの埋め込みにも対応しています。
主な機能
- 01Goで記述する、signals、memos、effectsを使ったリアクティブな状態管理
- 02各プラットフォームのネイティブビューで描画するflexboxとgridのレイアウト
- 03iOS、Android、macOS、Windows、Linux、Webに対応
- 04Tailwind CSSクラスを使ったTSXでアプリを記述可能
- 05ヘッドレステストと、スクリーンショットを使った実ウィンドウでのテスト
- 06開発時のホットリロードと、プラットフォームごとのリリースパッケージ作成
ユースケース
- 各プラットフォームでネイティブな見た目のクロスプラットフォームアプリをGoで開発する
- 既存のiOS、Android、デスクトップアプリにGo製UIを埋め込む
- Rustを書かずにNSHのモデルを採用したいチーム
クイックスタート
- 1
要件を確認します:Xcode をインストールした macOS と Go 1.26 以降
- 2
nsgo ツールをモジュールに追加します
go get -tool github.com/oneo-me/nsgo/cmd/nsgo - 3
dev コマンドでアプリを一度実行します
go tool nsgo dev
使う前に知っておきたいこと
- NSGo はまだ初期段階で、リリースも安定した API もありません。
- すべてのターゲットで開発するには、Xcode をインストールした macOS が必要です。
- Android には adb、x86_64 エミュレーターには Android NDK など、一部のターゲットでは追加ツールが必要です。
収録されている特集
トピック
よくある質問
- nsgo とは?
- アプリのロジックをGoで実行し、各プラットフォームが独自のネイティブビューで描画するクロスプラットフォームUIエンジン。 NSGoを使うと、Goでユーザーインターフェースを構築できます。アプリのロジック、signals、memos、effectsで構成されるリアクティブグラフ、flexboxやgridによるレイアウトはすべてGoで実行されます。一方、各ターゲットプラットフォームは独自のネイティブビューとテキストで描画するため、独自のcanvasは使いません。これは、同じ設計思想を持つRust製フレームワークNative Shell(NSH)のGo移植版です。
- nsgo は無料で使えますか?ライセンスは?
- nsgo は Other ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- nsgo は今もメンテナンスされていますか?
- 活発にメンテナンス中。nsgo の最終コミットは 2026年11月6日 です。
- nsgo は何に使えますか?
- 各プラットフォームでネイティブな見た目のクロスプラットフォームアプリをGoで開発する 既存のiOS、Android、デスクトップアプリにGo製UIを埋め込む Rustを書かずにNSHのモデルを採用したいチーム
- nsgo のインストール方法は?
- 要件を確認します:Xcode をインストールした macOS と 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
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
FlutterベースのUIでWeb・デスクトップ・モバイルアプリを開発できる、フロントエンドの知識が不要なPythonフレームワーク。
DOMやWebViewを使わず、携帯機・デスクトップ・組み込み画面にネイティブ描画するTypeScript UIランタイム。
JavaScriptまたはTypeScriptで、ネイティブUIとAPIを直接利用したiOS、Android、visionOSアプリを構築するフレームワーク。
単一のコードベースからデスクトップ・モバイルアプリを開発できる、Go向けクロスプラットフォームGUIツールキット兼アプリAPI。
RustベースのGPUIフレームワークで宣言的UIを描画する、ネイティブデスクトップアプリ構築用Elixirライブラリ。