HTTPとgRPCの統一トランスポート、ミドルウェア、Protobufベースのコード生成を備えた、クラウドネイティブなマイクロサービス構築向けの軽量Goフレームワーク。
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
Go を使って goctl をインストールする
go install github.com/zeromicro/go-zero/tools/goctl@latest - 2
API ファイル greet.api を作成する(goctl がテンプレートを生成)
goctl api -o greet.api - 3
API ファイルから Go サーバーコードを生成する
goctl api go -api greet.api -dir greet - 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 の数値は毎日更新されます。
関連プロジェクト
多くのプログラミング言語間で相互運用可能なクライアントとサーバーを生成する、言語非依存のRPCフレームワークです。
サービス通信、ディスカバリー、トラフィック管理を実現するRPC・マイクロサービスフレームワーク、Apache DubboのJava実装。
Martini風のAPIを備え、REST API、Webアプリ、マイクロサービス向けに作られた、高性能なGo用HTTP Webフレームワークです。
最小限のセットアップで、本番運用に適したSpringベースのアプリケーションやサービスを構築できる、独自の方針を持つJavaフレームワークです。
IstioとEnvoyをベースにしたクラウドネイティブなAPIゲートウェイ。LLMプロバイダー向けのAIゲートウェイ機能とMCPサーバーのホスティングに対応。