Repolode
egoist

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. 1

    Go 1.27.3以降とBunをインストールする

  2. 2

    Webフロントエンドアプリを作成する

    bunx mygo-cli init my-app
  3. 3

    プロジェクトフォルダーに移動する

    cd my-app
  4. 4

    開発サーバーを起動する

    bun run dev

使う前に知っておきたいこと

  • クイックスタートにはGo 1.27.3以降とBunが必要です。

Repolode 週刊で紹介

収録されている特集

トピック

よくある質問

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 の数値は毎日更新されます。

関連プロジェクト