高負荷に耐える機能を備え、.api仕様からコードを生成するgoctlを同梱したGo製Web・RPCマイクロサービスフレームワーク。
go-kratos/kratos
HTTPとgRPCの統一トランスポート、ミドルウェア、Protobufベースのコード生成を備えた、クラウドネイティブなマイクロサービス構築向けの軽量Goフレームワーク。
- スター
- 25,984
- フォーク
- 4,182
- 未解決の Issue
- 121
- 最終コミット
- 一昨日
これは何?
Kratosは、クラウドネイティブなマイクロサービスを構築するためのGoフレームワークです。トランスポート、ミドルウェア、サービスレジストリ、設定、ロギング、エンコーディング、コード生成のための、小さく明示的なAPIを提供することで、開発者がビジネスロジックにより多くの時間を割けるようにします。
このフレームワークはAPIファーストです。サービスをProtobufで定義し、Kratos CLIでその定義からHTTPおよびgRPCのサーバー/クライアントコードを生成します。HTTPとgRPCは共通のトランスポートレイヤーを使用し、ミドルウェアはリカバリー、ロギング、バリデーション、トレーシング、メトリクス、認証をカバーします。レジストリ、設定、エンコーディングの各コンポーネントは、プラグインで差し替えられます。
新しいサービスをひな形から作成するCLIが付属しており、contribエコシステムでは、レジストリ、設定ストア、OpenTelemetryベースのオブザーバビリティなどのオプション統合を利用できます。ロギングには、標準ライブラリのlog/slogパッケージを使用します。
主な機能
- 01Protobufを起点としたワークフローで、HTTPおよびgRPCのコードを生成。
- 02HTTPとgRPCの両方を提供する統一トランスポートレイヤー。
- 03リカバリー、ロギング、バリデーション、トレーシング、メトリクス、認証に対応する、組み合わせ可能なミドルウェア。
- 04プラグインで差し替え可能なレジストリ、設定、エンコーディングの各コンポーネント。
- 05標準ライブラリのlog/slogを使ったロギングと、contribパッケージによるOpenTelemetry拡張。
ユースケース
- gRPCとHTTPで通信するGoマイクロサービス群の構築。
- ProtobufでAPIを定義し、Goチーム向けにサーバーおよびクライアントのスタブを生成。
- 標準的なプロジェクト構成で、新しいGoサービスのひな形を作成。
クイックスタート
- 1
要件に記載されている Go toolchain、protoc、protoc-gen-go をインストールします
- 2
Kratos CLI をインストールします
go install github.com/go-kratos/kratos/cmd/kratos/v3@latest - 3
helloworld という名前の新しいサービスを作成します
kratos new helloworld - 4
プロジェクトに移動し、依存関係を取得してサービスを実行します
cd helloworld && go mod tidy && kratos run
使う前に知っておきたいこと
- コード生成には protoc と protoc-gen-go を別途インストールする必要があります。
- Go 1.25 以降が必要です。
収録されている特集
トピック
よくある質問
- kratos とは?
- HTTPとgRPCの統一トランスポート、ミドルウェア、Protobufベースのコード生成を備えた、クラウドネイティブなマイクロサービス構築向けの軽量Goフレームワーク。 Kratosは、クラウドネイティブなマイクロサービスを構築するためのGoフレームワークです。トランスポート、ミドルウェア、サービスレジストリ、設定、ロギング、エンコーディング、コード生成のための、小さく明示的なAPIを提供することで、開発者がビジネスロジックにより多くの時間を割けるようにします。
- kratos は無料で使えますか?ライセンスは?
- kratos は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- kratos は今もメンテナンスされていますか?
- 活発にメンテナンス中。kratos の最終コミットは 2026年10月21日 です。
- kratos は何に使えますか?
- gRPCとHTTPで通信するGoマイクロサービス群の構築。 ProtobufでAPIを定義し、Goチーム向けにサーバーおよびクライアントのスタブを生成。 標準的なプロジェクト構成で、新しいGoサービスのひな形を作成。
- kratos のインストール方法は?
- 要件に記載されている Go toolchain、protoc、protoc-gen-go をインストールします Kratos CLI をインストールします: go install github.com/go-kratos/kratos/cmd/kratos/v3@latest helloworld という名前の新しいサービスを作成します: kratos new helloworld プロジェクトに移動し、依存関係を取得してサービスを実行します: cd helloworld && go mod tidy && kratos run
- kratos はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/go-kratos/kratos
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
サービス通信、ディスカバリー、トラフィック管理を実現するRPC・マイクロサービスフレームワーク、Apache DubboのJava実装。
Goサービス向けに、RESTfulなJSON HTTP呼び出しをgRPCリクエストへ変換するリバースプロキシサーバーを生成するprotocプラグイン。
Envoy上でKubernetes Gateway APIを実装し、AIゲートウェイのユースケースにも対応するKubernetesネイティブなAPIゲートウェイ。
Martini風のAPIを備え、REST API、Webアプリ、マイクロサービス向けに作られた、高性能なGo用HTTP Webフレームワークです。
チームやAIエージェント向けに、ドメイン、サービス、イベント、メッセージ、スキーマをカタログ化するソフトウェアアーキテクチャのドキュメントツール。