module
Version:
v0.6.0
Opens a new window with list of versions in this module.
Published: Oct 17, 2026
License: MIT
Opens a new window with license information.
README
¶
core
应用基建件——治理配置 schema/config 配置加载/lifecycle 契约/IP 工具/version
🌐 项目主页:https://oekit.github.io/ · 名称由来:Open Easy Kit(开源 · 易用 · 工具集合)
🤖 AI Agent:本仓规范与硬规则见 AGENTS.md;机器可读索引见 llms.txt(接口签名以源码为准)。
安装
go get github.com/oekit/core@v0.5.0
这个仓库做什么
core 是应用基建件集合:治理配置 schema、配置文件加载、生命周期契约、网络 IP 工具、版本信息——
各服务都会用到、但又不属于任何具体领域的基础件。
组成
| 包 |
做什么 |
governance |
治理配置模板 schema(retry/timeout_ms/circuit_breaker/limiter)+ Parse/Store。JSON 形态对 Nacos 友好,hertz/kitex 两侧共用 |
config |
配置文件加载:LoadBootstrap[T](YAML + ${VAR} 占位符展开 + struct tag default/env/range/options)、LoadDotEnv、env 系列、ConfigWatcher[T] 热更新、OverlayMerge。只依赖 yaml+logx,零 Nacos |
lifecycle |
应用生命周期:App 契约(hertz/kitex 的 RunServer 面向它编程)+ Manager 优雅关停(closer/teardown/drain/信号) |
network |
IP 工具:GetPodIP(K8s POD_IP 感知)、IsPublicIP——注册地址解析的公共依赖 |
version |
版本信息(ldflags 注入 Metadata()) |
快速使用
import "github.com/oekit/core/governance"
cfg, err := governance.Parse([]byte(`{
"timeout_ms": { "*": 500 },
"retry": { "max_attempts": 3 }
}`))
// 非法值 fail-closed 返回错误;hertz/kitex 侧经 Store 订阅热更新
import "github.com/oekit/core/config"
cfg, err := config.LoadBootstrap[MyConfig]("dev") // etc/config.yaml → etc/config-dev.yaml
config.LoadDotEnv(".env") // 可选:本地 .env
边界
矩阵总览(21 活跃模块,自动生成)
依赖严格自底向上;微库已合并为 pkg,旧微库仓已删除。
本仓在矩阵中的位置与依赖见上表「矩阵内依赖」列。历史沿革:源自 ekit 单体库
(git.enjoye.top/enjoydream/ekit v0.34.0,冻结维护),2026-10 拆分为独立 module。
License
MIT — 见 LICENSE
Directories
¶
Package config 提供 YAML 配置文件加载、struct tag 增强和反射合并。
|
Package config 提供 YAML 配置文件加载、struct tag 增强和反射合并。 |
Package governance 定义 kitex/hertz 共用的治理配置模板(audit 5.2)。
|
Package governance 定义 kitex/hertz 共用的治理配置模板(audit 5.2)。 |
Package lifecycle 定义 transport 适配层依赖的应用生命周期契约。
|
Package lifecycle 定义 transport 适配层依赖的应用生命周期契约。 |
Package network 提供网络相关的轻量工具函数。
|
Package network 提供网络相关的轻量工具函数。 |
Package version 提供编译时版本信息注入和运行时查询。
|
Package version 提供编译时版本信息注入和运行时查询。 |
Click to show internal directories.
Click to hide internal directories.