Repolode
go-kratos

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

    要件に記載されている Go toolchain、protoc、protoc-gen-go をインストールします

  2. 2

    Kratos CLI をインストールします

    go install github.com/go-kratos/kratos/cmd/kratos/v3@latest
  3. 3

    helloworld という名前の新しいサービスを作成します

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

関連プロジェクト