Repolode
go-kratos

go-kratos/kratos

一个轻量的 Go 微服务框架,提供统一的 HTTP/gRPC 传输层、中间件和基于 Protobuf 的代码生成。

Star
25,984
Fork
4,182
未关闭 Issue
121
最近提交
前天

这是什么?

Kratos 是一个用于构建云原生微服务的 Go 框架。它为传输、中间件、服务注册、配置、日志、编解码和代码生成提供了小而明确的 API,让开发者能把更多精力放在业务逻辑上。

框架采用 API 优先的开发方式:服务通过 Protobuf 定义,Kratos CLI 会根据这些定义生成 HTTP 和 gRPC 的服务端与客户端代码。HTTP 和 gRPC 共用同一套传输层,中间件涵盖恢复、日志、参数校验、链路追踪、指标和鉴权等功能。注册中心、配置和编解码组件均可插拔替换。

项目提供用于快速创建服务的 CLI,contrib 生态则包含注册中心、配置存储、基于 OpenTelemetry 的可观测性等可选集成。日志基于标准库的 log/slog 实现。

核心功能

  • 01基于 Protobuf 的开发流程,可生成 HTTP 和 gRPC 代码。
  • 02统一的传输层同时支持 HTTP 和 gRPC。
  • 03可组合的中间件,覆盖恢复、日志、校验、追踪、指标和鉴权。
  • 04注册中心、配置和编解码组件均可插拔。
  • 05基于标准库 log/slog 的日志,contrib 包中提供 OpenTelemetry 扩展。

适用场景

  • 用 Go 构建通过 gRPC 和 HTTP 通信的一组微服务。
  • 用 Protobuf 定义接口,为 Go 团队生成服务端和客户端代码。
  • 按标准项目结构快速搭建新的 Go 服务。

快速上手

  1. 1

    按要求安装 Go 工具链、protoc 和 protoc-gen-go

  2. 2

    安装 Kratos 命令行工具

    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 是什么?
一个轻量的 Go 微服务框架,提供统一的 HTTP/gRPC 传输层、中间件和基于 Protobuf 的代码生成。 Kratos 是一个用于构建云原生微服务的 Go 框架。它为传输、中间件、服务注册、配置、日志、编解码和代码生成提供了小而明确的 API,让开发者能把更多精力放在业务逻辑上。
kratos 可以免费使用吗?用的什么许可证?
kratos 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
kratos 还在维护吗?
活跃维护中。kratos 最近一次提交是在 2026年10月21日。
kratos 适合用来做什么?
用 Go 构建通过 gRPC 和 HTTP 通信的一组微服务。 用 Protobuf 定义接口,为 Go 团队生成服务端和客户端代码。 按标准项目结构快速搭建新的 Go 服务。
kratos 怎么安装和运行?
按要求安装 Go 工具链、protoc 和 protoc-gen-go 安装 Kratos 命令行工具: 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

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目