Repolode
zeromicro

zeromicro/go-zero

高負荷に耐える機能を備え、.api仕様からコードを生成するgoctlを同梱したGo製Web・RPCマイクロサービスフレームワーク。

スター
33,398
フォーク
4,333
未解決の Issue
255
最終コミット
一昨日

これは何?

go-zeroは、高い並行性のもとでも安定稼働が求められるマイクロサービス向けに設計された、Go製のWeb・RPCフレームワークです。連鎖的なタイムアウト制御、並行処理の制御、レート制限、適応型サーキットブレーカー、適応型ロードシェディングなど、一般的な開発手法を取り入れており、その多くは追加設定なしで利用できます。

goctlというコマンドラインツールも提供しています。開発者はシンプルな.api構文または.protoファイルでAPIを記述でき、goctlがハンドラー、ロジック、サービスコンテキスト、型付きのリクエスト/レスポンス構造体を含むGoサーバーのひな型を生成します。同じ.apiファイルから、Java、Dart、TypeScript、JavaScript、Kotlin、iOS、Android向けのクライアントコードも生成できます。

開発ワークフロー向けにAIアシスタント用のガイダンスも提供しており、Model Context Protocolに対応したツールからgoctlのコード生成機能を利用できるMCPアダプターも含まれます。コアフレームワークはnet/httpと完全に互換性があります。

主な機能

  • 01サーキットブレーカー、レート制限、ロードシェディング、タイムアウト制御を標準搭載
  • 02goctlが.apiまたは.protoの仕様からGoサービスのコードを生成
  • 03リクエストパラメーターを自動検証
  • 041つの.apiファイルから複数言語のクライアントコードを生成
  • 05net/httpと完全互換で、既存のミドルウェアとも連携

ユースケース

  • 標準搭載の耐障害機能が必要な高トラフィックのREST APIを構築する
  • マイクロサービスアーキテクチャで相互に通信する複数のRPCサービスを開発する
  • 単一のAPI仕様からGoやモバイル・Webフロントエンド向けのひな型とクライアントSDKを生成する

クイックスタート

  1. 1

    Go を使って goctl をインストールする

    go install github.com/zeromicro/go-zero/tools/goctl@latest
  2. 2

    API ファイル greet.api を作成する(goctl がテンプレートを生成)

    goctl api -o greet.api
  3. 3

    API ファイルから Go サーバーコードを生成する

    goctl api go -api greet.api -dir greet
  4. 4

    生成されたサービスを実行する

    cd greet && go mod tidy && go run greet.go -f etc/greet-api.yaml

収録されている特集

トピック

よくある質問

go-zero とは?
高負荷に耐える機能を備え、.api仕様からコードを生成するgoctlを同梱したGo製Web・RPCマイクロサービスフレームワーク。 go-zeroは、高い並行性のもとでも安定稼働が求められるマイクロサービス向けに設計された、Go製のWeb・RPCフレームワークです。連鎖的なタイムアウト制御、並行処理の制御、レート制限、適応型サーキットブレーカー、適応型ロードシェディングなど、一般的な開発手法を取り入れており、その多くは追加設定なしで利用できます。
go-zero は無料で使えますか?ライセンスは?
go-zero は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
go-zero は今もメンテナンスされていますか?
活発にメンテナンス中。go-zero の最終コミットは 2026年10月21日 です。
go-zero は何に使えますか?
標準搭載の耐障害機能が必要な高トラフィックのREST APIを構築する マイクロサービスアーキテクチャで相互に通信する複数のRPCサービスを開発する 単一のAPI仕様からGoやモバイル・Webフロントエンド向けのひな型とクライアントSDKを生成する
go-zero のインストール方法は?
Go を使って goctl をインストールする: go install github.com/zeromicro/go-zero/tools/goctl@latest API ファイル greet.api を作成する(goctl がテンプレートを生成): goctl api -o greet.api API ファイルから Go サーバーコードを生成する: goctl api go -api greet.api -dir greet 生成されたサービスを実行する: cd greet && go mod tidy && go run greet.go -f etc/greet-api.yaml
go-zero はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/zeromicro/go-zero

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

関連プロジェクト