Kratos 是一套轻量级 Go 微服务框架,围绕传输、Middleware、注册发现、配置、日志、编码和代码生成提供清晰的基础能力,让业务代码保持聚焦。
log/slog 的日志能力,OpenTelemetry 扩展由 contrib 包提供。go install github.com/go-kratos/kratos/cmd/kratos/v3@latest
kratos upgrade
kratos new helloworld
cd helloworld
go mod tidy
kratos run
服务启动后访问 http://localhost:8000/helloworld/kratos。
如果需要从 proto 开始生成服务代码:
kratos proto add api/helloworld/helloworld.proto
kratos proto client api/helloworld/helloworld.proto
kratos proto server api/helloworld/helloworld.proto -t internal/service
go generate ./...
kratos run
package main
import (
"github.com/go-kratos/kratos/v3"
"github.com/go-kratos/kratos/v3/transport/grpc"
"github.com/go-kratos/kratos/v3/transport/http"
)
func main() {
httpSrv := http.NewServer(http.Address(":8000"))
grpcSrv := grpc.NewServer(grpc.Address(":9000"))
app := kratos.New(
kratos.Name("helloworld"),
kratos.Version("v1.0.0"),
kratos.Server(httpSrv, grpcSrv),
)
if err := app.Run(); err != nil {
panic(err)
}
}
Kratos v3 进一步降低核心依赖,并将历史上隐式的行为显式化。升级生产服务前请先阅读 v2 到 v3 迁移指南。
make test
make lint
如果你发现 Kratos 存在安全漏洞,请发送邮件到 go-kratos@googlegroups.com。安全问题会在公开披露前以私密方式处理。
感谢所有为 Kratos 做出贡献的开发者。贡献流程请参考 Kratos 贡献指南。
以下项目对 Kratos 的设计有重要影响:
Kratos 基于 MIT license 开源。
$ claude mcp add kratos \
-- python -m otcore.mcp_server <graph>