用途:帮助在 Go 中构建生产级 gRPC 服务,强调可靠的默认实践。
主要能力:版本化 protobuf API 定义(如 package users.v1,配 go_package);使用 protoc-gen-go 与 protoc-gen-go-grpc 生成代码;在处理器中校验参数并将领域错误映射为 gRPC 状态码;用拦截器处理鉴权、日志、指标、追踪与请求 ID;元数据用于鉴权与会话关联;支持一元与服务端流式,流式需响应 ctx.Done() 并处理 Send 错误;健康检查与反射(反射仅限非生产);TLS 与 mTLS;用 bufconn 做无真实套接字的测试。
使用方式:先定义 proto,再安装并运行代码生成命令,例如:go install google.golang.org/protobuf/cmd/protoc-gen-go@latest 与 go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest;随后用 protoc -I proto --go_out=./gen --go_opt=paths=source_relative --go-grpc_out=./gen --go-grpc_opt=paths=source_relative proto/users/v1/users.proto 生成。服务器端使用 status.Error(codes.X, "..."),要求调用方带截止时间,用 GracefulStop 优雅关闭。
适用场景:服务间通信、需强类型 API 与流式的后端服务。
限制与注意:避免无版本包、返回原始字符串错误、忽略截止时间、无背压的流式、在生产暴露反射。未提供收费、价格、平台或效果信息。