ネイティブの描画エンジンを使い、ReactやVue、SvelteなどのWebフロントエンドを備えたクロスプラットフォームのデスクトップアプリを構築するGoフレームワーク。
egoist/mygo
OSのwebviewを使ったWebフロントエンド、またはGPUで描画するネイティブUIを備えたデスクトップアプリを構築するGoフレームワーク。
- スター
- 5,015
- フォーク
- 303
- 未解決の Issue
- 100
- 最終コミット
- 20 時間前
これは何?
MyGoを使うと、Goで2種類のウィンドウを持つデスクトップアプリを開発できます。1つはOSが提供するwebview(macOSのWKWebView、LinuxのWebKitGTK、WindowsのWebView2)にWebページを表示するウィンドウ、もう1つはMyGoがGPUで描画するネイティブGo UIツールキットを使い、HTML、JavaScript、webviewを使わないウィンドウです。1つのウィンドウやアプリ内で両方を組み合わせることもできます。
Webフロントエンドでは、Goのコードから生成したTypeScriptクライアントを通じてGoのサービスを公開でき、型付きIPC、値をストリーミングするためのチャネル、型付きイベントを利用できます。cgoを使わない純粋なGo製のため、どのマシンからでもクロスコンパイルできます。デスクトップAPIでは、ウィンドウ、メニュー、トレイ、ダイアログ、通知、グローバルショートカット、ディープリンク、ファイル関連付け、システムのアクセントカラーを扱えます。
アプリバンドル、ディスクイメージ、Windowsインストーラー、Debianパッケージ、コード署名、公証、差分アップデートに対応した署名付き自動アップデートなど、パッケージングと配布のためのツールも備えています。
主な機能
- 01生成されたTypeScriptクライアントを通じてGoコードを呼び出せるWebページウィンドウ。
- 02flexboxやgridレイアウト、ウィジェット、仮想化リストを備えたGo製ネイティブUIツールキット。
- 03cgoを使わない純粋なGo製で、どのマシンからでもクロスプラットフォームビルドが可能。
- 04メニュー、トレイ、ダイアログ、通知、グローバルショートカット、ディープリンク向けのデスクトップAPI。
- 05macOS、Windows、Linux向けのパッケージングと署名付き自動アップデート。
ユースケース
- バックエンドロジックとUIの両方にGoを使いたいチームでのデスクトップツール開発。
- 起動が速く、メモリ使用量の少ないネイティブUIアプリの作成。
- コード署名と自動アップデートに対応したクロスプラットフォームのデスクトップアプリの配布。
- システムのwebviewを使い、Goバックエンドと連携するWebフロントエンドをデスクトップアプリに追加。
クイックスタート
- 1
Go 1.27.3以降とBunをインストールする
- 2
Webフロントエンドアプリを作成する
bunx mygo-cli init my-app - 3
プロジェクトフォルダーに移動する
cd my-app - 4
開発サーバーを起動する
bun run dev
使う前に知っておきたいこと
- クイックスタートにはGo 1.27.3以降とBunが必要です。
Repolode 週刊で紹介
- 第 3 号 · SSDから専門家を読み込む大型MoEと、ミリ秒単位のRust再ビルド
Goでデスクトップアプリを作るフレームワークで、OSのwebviewでWebフロントを使うか、GPU描画のネイティブUIを選べます。cgo不要の純Goなので、どのマシンからでもクロスビルドできます。
収録されている特集
トピック
よくある質問
- mygo とは?
- OSのwebviewを使ったWebフロントエンド、またはGPUで描画するネイティブUIを備えたデスクトップアプリを構築するGoフレームワーク。 MyGoを使うと、Goで2種類のウィンドウを持つデスクトップアプリを開発できます。1つはOSが提供するwebview(macOSのWKWebView、LinuxのWebKitGTK、WindowsのWebView2)にWebページを表示するウィンドウ、もう1つはMyGoがGPUで描画するネイティブGo UIツールキットを使い、HTML、JavaScript、webviewを使わないウィンドウです。1つのウィンドウやアプリ内で両方を組み合わせることもできます。
- mygo は無料で使えますか?ライセンスは?
- mygo は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- mygo は今もメンテナンスされていますか?
- 活発にメンテナンス中。mygo の最終コミットは 2026年11月6日 です。
- mygo は何に使えますか?
- バックエンドロジックとUIの両方にGoを使いたいチームでのデスクトップツール開発。 起動が速く、メモリ使用量の少ないネイティブUIアプリの作成。 コード署名と自動アップデートに対応したクロスプラットフォームのデスクトップアプリの配布。 システムのwebviewを使い、Goバックエンドと連携するWebフロントエンドをデスクトップアプリに追加。
- mygo のインストール方法は?
- Go 1.27.3以降とBunをインストールする Webフロントエンドアプリを作成する: bunx mygo-cli init my-app プロジェクトフォルダーに移動する: cd my-app 開発サーバーを起動する: bun run dev
- mygo はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/egoist/mygo
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
各OSのネイティブウィジェットでアプリを描画するPython GUIツールキット。
GPU描画のネイティブUI、またはシステムWebView内のWebページでデスクトップアプリを構築できるZigツールキット。
LinuxとmacOSではWebKit、WindowsではWebView2を使い、デスクトップアプリにネイティブWebビューを埋め込む小さなC/C++ライブラリです。
RustまたはTSXでアプリを書き、各プラットフォーム固有のウィジェットで描画できる、クロスプラットフォームUI向けRustエンジン。
アプリのロジックをGoで実行し、各プラットフォームが独自のネイティブビューで描画するクロスプラットフォームUIエンジン。