README ¶ Bang Micro Bang Micro 是一个面向生产环境的 Go 类库集,不是把所有能力塞进一个“大框架”。每个包都保持独立、显式生命周期和清晰边界,目标是让业务可以直接使用 micro,而不必先理解每个第三方 SDK 的坑点和默认行为。 设计取向 不依赖导入时副作用。能不在 init() 做的事情,就不在 init() 做。 公开 API 的生命周期显式化,启动、关闭、全局安装和请求级调用分开处理。 对外运行时 API 统一要求非 nil context.Context,不静默回退到 context.Background()。 在包边界处清洗和克隆调用方输入,避免把调用方对象当成内部可变状态。 Prometheus 指标优先按需注册、可注入、可关闭,避免污染全局默认 registry。 保留底层 SDK 能力,但用更干净的默认行为、日志、trace 和错误边界包起来。 文档 文档索引 迁移说明 模块概览 Transport httpx: 生产级 net/http 客户端与服务端封装。 grpcx: 干净的 gRPC 客户端、服务端与拦截器边界。 ginx: 基于 Gin 的服务端封装,统一 trace、metrics、recovery。 wsx: WebSocket 客户端、服务端、Hub、房间广播与订阅模型。 tcpx: 显式生命周期的 TCP 客户端与服务端封装。 udpx: 面向 datagram 的 UDP 封装。 Store gormx: GORM 打开、连接池、trace、metrics、日志边界。 redisx: go-redis/v9 单节点客户端封装。 elasticsearchx: Elasticsearch v9 客户端封装。 opensearchx: 阿里云 OpenSearch 查询与搜索封装。 ossx: 阿里云 OSS 客户端封装。 Conf viperx: 配置加载与环境变量覆盖。 envx: 环境模式识别与主机名辅助工具。 Telemetry trace: OpenTelemetry TracerProvider 初始化与全局安装。 logger: 结构化日志与 trace 上下文注入。 Contrib jwtx: 泛型 JWT 签发与解析封装。 discovery: Nacos naming client 封装。 mqtt: MQTT 客户端封装,兼容阿里云 MQTT 鉴权模式。 rmq: RocketMQ 5 Producer / SimpleConsumer 封装。 alipay: 支付宝支付封装。 wechat: 微信支付 v3 封装。 sms: 阿里云短信封装。 Runtime pool: 有界 goroutine 池与显式背压模型。 安装 go get github.com/bang-go/micro 使用建议 只想拿到 TracerProvider 而不改全局,用 telemetry/trace.Open;需要设置全局 tracer,再用 telemetry/trace.InitTracer。 需要隔离 Prometheus registry 的包,优先注入 MetricsRegisterer;明确不需要指标时,用 DisableMetrics。 如果公开方法接收 context.Context,就传业务上下文,不要传 nil。 如果你已经熟悉底层 SDK,可以直接拿原始客户端;大多数封装都保留了 Raw() 或等价入口。 License MIT Expand ▾ Collapse ▴ Directories ¶ Show internal Expand all Path Synopsis conf envx viperx contrib auth/jwtx discovery mq/mqtt mq/rmq pay/alipay pay/wechat sms pkg pool store elasticsearchx gormx opensearchx ossx redisx telemetry logger trace transport ginx ginx/middleware grpcx grpcx/client_interceptor grpcx/metadatax grpcx/server_interceptor httpx tcpx udpx wsx Click to show internal directories. Click to hide internal directories.