Repolode
maxence-charriere

maxence-charriere/go-app

Goだけで宣言的なコンポーネントベースのUIを書き、WebAssemblyを使ってPWAを構築できるGoパッケージ。

スター
8,973
フォーク
406
未解決の Issue
52
最終コミット
24 時間前

これは何?

go-appを使うと、GoでPWAを構築できます。UIは再利用可能なコンポーネントとして記述し、Goのコード内でHTML要素を直接作成・組み合わせるため、フロントエンドに別途JavaScriptやテンプレート言語を用意する必要はありません。GoのコードはWebAssemblyにコンパイルされ、ブラウザ上で動作します。

このパッケージは標準のGo net/httpの仕組みに従っているため、ほかのGo製Webサーバーと同様に、http.Handleやhttp.ListenAndServeを使ってアプリを配信できます。作成したアプリは独立したウィンドウで動作でき、オフラインモードに対応し、SEOにも配慮して設計されています。コンポーネント間のルーティングにはapp.Routeを使います。

このプロジェクトにはGo 1.18以降が必要で、Go moduleとしてインストールします。ドキュメントサイトgo-app.devでは、宣言的な構文と入門ガイドを確認できます。

主な機能

  • 01宣言的なコンポーネントベースの構文を使い、GoだけでUIを構築できます。
  • 02GoをWebAssemblyにコンパイルして、ブラウザ上で実行できます。
  • 03アプリの配信には標準のGo net/httpインターフェースを使用します。
  • 04PWAとして、オフラインモードと独立したウィンドウでの実行に対応します。
  • 05app.Routeによるコンポーネント間のルーティングを提供します。

ユースケース

  • すべてをGoで書きたいチーム向けのWebまたはPWAフロントエンドの構築。
  • 検索エンジンにインデックスされる必要がある、インストール可能でオフライン対応のWebアプリの作成。
  • バックエンドサーバーとブラウザ側のUIでGoの型やロジックを共有する用途。

クイックスタート

  1. 1

    プロジェクトフォルダーでGoモジュールを初期化します

    go mod init
  2. 2

    go-appパッケージをインストールします

    go get -u github.com/maxence-charriere/go-app/v11/pkg/app
  3. 3

    最初のアプリを作成するには、go-app.devの「Getting Started」ガイドに従ってください

トピック

よくある質問

go-app とは?
Goだけで宣言的なコンポーネントベースのUIを書き、WebAssemblyを使ってPWAを構築できるGoパッケージ。 go-appを使うと、GoでPWAを構築できます。UIは再利用可能なコンポーネントとして記述し、Goのコード内でHTML要素を直接作成・組み合わせるため、フロントエンドに別途JavaScriptやテンプレート言語を用意する必要はありません。GoのコードはWebAssemblyにコンパイルされ、ブラウザ上で動作します。
go-app は無料で使えますか?ライセンスは?
go-app は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
go-app は今もメンテナンスされていますか?
活発にメンテナンス中。go-app の最終コミットは 2026年10月21日 です。
go-app は何に使えますか?
すべてをGoで書きたいチーム向けのWebまたはPWAフロントエンドの構築。 検索エンジンにインデックスされる必要がある、インストール可能でオフライン対応のWebアプリの作成。 バックエンドサーバーとブラウザ側のUIでGoの型やロジックを共有する用途。
go-app のインストール方法は?
プロジェクトフォルダーでGoモジュールを初期化します: go mod init go-appパッケージをインストールします: go get -u github.com/maxence-charriere/go-app/v11/pkg/app 最初のアプリを作成するには、go-app.devの「Getting Started」ガイドに従ってください
go-app はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/maxence-charriere/go-app

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト