このプロジェクトについて
Kratosは、クラウドネイティブなマイクロサービスの構築を目的とした軽量Goフレームワークです。トランスポート、ミドルウェア、レジストリ、設定、ロギング、エンコーディング、コード生成をカバーする小さく明確なAPIを公開しており、アプリケーションコードはビジネスロジックに集中できます。
READMEに記載されている主な機能は以下の通りです:
- Protobufを使用したAPIファースト開発。HTTPおよびgRPCコードを生成します。
- HTTPとgRPCサーバーの両方を処理する統一トランスポート層。
- リカバリ、ロギング、検証、トレーシング、メトリクス、認証などの関心事に対する構成可能なミドルウェア。
- プラグ可能なレジストリ、設定、エンコーディングコンポーネント。異なるバックエンドを交換可能にします。
- 標準ライブラリのlog/slogに基づくロギング。OpenTelemetry拡張はcontribパッケージで利用可能です。
- メタデータ、エラー、検証、OpenAPI、コード生成ワークフローの一貫した処理。
- レジストリ、設定ストア、ミドルウェア、エンコーディング、可観測性などのオプション統合のためのcontribエコシステム。
始めるにはGo 1.25以降、protoc、protoc-gen-goが必要です。CLIはgo installでインストールし、その後kratos newでサービスを雛形生成、kratos proto add/client/serverでProtobufアーティファクトを生成、kratos runでサービスを起動します。最小限の例では、HTTPとgRPCサーバーを作成し、kratos.Newで登録してapp.Runを呼び出す方法を示しています。
このプロジェクトは、v3でコア依存関係を削減し、以前は暗黙的だった動作を明示的にしたと述べており、本番サービスをアップグレードする前にv2からv3への移行ガイドを参照するよう案内しています。その他のリソースには、公式ドキュメント、examplesリポジトリ、推奨プロジェクトレイアウト、コミュニティ貢献ガイドがあります。開発タスクはmake testとmake lintで実行します。コミュニティチャネルには、ドキュメント、WeChatグループ、Discord、GitHub Discussionsがあります。セキュリティ問題は専用のメールアドレスで非公開に処理されます。このプロジェクトはMITライセンスであり、go-kit、go-micro、go-cloud、go-zero、beegoからの影響を受けていることを認めています。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.