Documentation
¶
Overview ¶
Package foundation 是零或极少外部依赖的基础原语与数据结构,是整个框架的最底层。
选包标准:
- 不依赖框架内其他分组(resilience/store/messaging 等)
- 不依赖重量级第三方库(如需要,应放 contrib/)
- 解决的是通用编程问题,而非特定业务领域
已有子包:
ctxkey — context key 辅助 safe — panic recovery generic — 泛型工具函数 options — functional options 模式 vars — 字符串模板插值 buildinfo — 构建信息注入 bitmap — 位图 ringbuffer — 环形缓冲区 chanx — channel 扩展(如无界 chan) fixedpoint — 定点数运算 sketch — 概率数据结构(HyperLogLog、Count-Min 等) pagination — 分页工具 priority — 优先队列 pipeline — 管道(stage→stage) dag — DAG 拓扑排序与并发执行 fsm — 有限状态机 keyedmutex — 按 key 细粒度互斥锁 syncx — 并发工具集(singleflight、errgroup 扩展等) xgo — goroutine pool semaphore — 信号量 signals — OS 信号处理
Directories
¶
| Path | Synopsis |
|---|---|
|
Package bitmap 提供位图:用 1 bit 表示一个布尔状态,极省内存的大规模标记与集合运算。
|
Package bitmap 提供位图:用 1 bit 表示一个布尔状态,极省内存的大规模标记与集合运算。 |
|
Package buildinfo 在运行时暴露构建信息(版本 / commit / 构建时间 / Go 版本 / 模块 / 是否 dirty),用于 /version 端点、启动日志、诊断。
|
Package buildinfo 在运行时暴露构建信息(版本 / commit / 构建时间 / Go 版本 / 模块 / 是否 dirty),用于 /version 端点、启动日志、诊断。 |
|
Package chanx 提供无界 channel 等 channel 扩展原语。
|
Package chanx 提供无界 channel 等 channel 扩展原语。 |
|
Package ctxkey 提供类型安全的 context.Context 键。
|
Package ctxkey 提供类型安全的 context.Context 键。 |
|
Package dag 提供一个轻量的有向无环图(DAG)执行器: 按依赖关系将节点拓扑分层,同一层内的节点并行执行,层间串行。
|
Package dag 提供一个轻量的有向无环图(DAG)执行器: 按依赖关系将节点拓扑分层,同一层内的节点并行执行,层间串行。 |
|
Package fixedpoint 提供 Q32.32 定点数原语,用于帧同步/状态同步场景下的跨平台 确定性数学计算。
|
Package fixedpoint 提供 Q32.32 定点数原语,用于帧同步/状态同步场景下的跨平台 确定性数学计算。 |
|
Package fsm 提供泛型有限状态机原语:声明式定义"状态 + 事件 → 目标状态"的 合法转移表,运行时 Fire(event) 只允许沿合法转移推进,非法转移报错而非静默改状态。
|
Package fsm 提供泛型有限状态机原语:声明式定义"状态 + 事件 → 目标状态"的 合法转移表,运行时 Fire(event) 只允许沿合法转移推进,非法转移报错而非静默改状态。 |
|
Package generic 提供一组类型安全的泛型/反射小工具。
|
Package generic 提供一组类型安全的泛型/反射小工具。 |
|
Package keyedmutex 提供按 key 的细粒度锁:同一 key 的持有者互斥(串行), 不同 key 之间互不阻塞(并行)。
|
Package keyedmutex 提供按 key 的细粒度锁:同一 key 的持有者互斥(串行), 不同 key 之间互不阻塞(并行)。 |
|
Package options 提供分层的功能选项(functional options)模式: 框架定义一组“通用选项”,各实现方再追加自己的“专属选项”,调用方把两类选项 混在同一个 []Option 里传入;框架与实现各自用类型安全的方式提取属于自己的部分。
|
Package options 提供分层的功能选项(functional options)模式: 框架定义一组“通用选项”,各实现方再追加自己的“专属选项”,调用方把两类选项 混在同一个 []Option 里传入;框架与实现各自用类型安全的方式提取属于自己的部分。 |
|
Package pagination 提供 keyset(游标)分页原语:把"下一页起点"编码成一个**不透明**的、URL 安全的 游标字符串,客户端原样回传即可翻页。
|
Package pagination 提供 keyset(游标)分页原语:把"下一页起点"编码成一个**不透明**的、URL 安全的 游标字符串,客户端原样回传即可翻页。 |
|
Package pipeline 提供类型安全的多阶段流水线:数据经过多个 Stage 顺序处理, 每个 Stage 可配置并发 worker 数(扇出)、带背压(有界 channel)。
|
Package pipeline 提供类型安全的多阶段流水线:数据经过多个 Stage 顺序处理, 每个 Stage 可配置并发 worker 数(扇出)、带背压(有界 channel)。 |
|
Package priority 提供泛型优先级队列:基于二叉堆实现,支持 Push/Pop/Peek/Update/Remove。
|
Package priority 提供泛型优先级队列:基于二叉堆实现,支持 Push/Pop/Peek/Update/Remove。 |
|
Package ringbuffer 提供定长环形缓冲:只保留最近 N 条,写满后覆盖最旧的, O(1) 追加。
|
Package ringbuffer 提供定长环形缓冲:只保留最近 N 条,写满后覆盖最旧的, O(1) 追加。 |
|
Package safe 提供 panic 恢复相关的小工具:把 panic 转成带堆栈的 error, 以及安全启动 goroutine(panic 不会崩进程)。
|
Package safe 提供 panic 恢复相关的小工具:把 panic 转成带堆栈的 error, 以及安全启动 goroutine(panic 不会崩进程)。 |
|
Package semaphore 提供加权信号量原语:限制对共享资源的最大并发占用量。
|
Package semaphore 提供加权信号量原语:限制对共享资源的最大并发占用量。 |
|
Package sketch 提供监控/风控常用的概率数据结构:用极小、常量级内存换取"近似但够用"的答案。
|
Package sketch 提供监控/风控常用的概率数据结构:用极小、常量级内存换取"近似但够用"的答案。 |
|
Package syncx 提供一组便捷的并发原语(泛型),补齐标准库与 pkg/xgo 之外常被手搓、 又容易写错的模式:
|
Package syncx 提供一组便捷的并发原语(泛型),补齐标准库与 pkg/xgo 之外常被手搓、 又容易写错的模式: |
|
Package tween 提供缓动函数与贝塞尔曲线插值原语,用于平滑动画和轨迹模拟。
|
Package tween 提供缓动函数与贝塞尔曲线插值原语,用于平滑动画和轨迹模拟。 |
|
Package vars 提供轻量的 ${KEY} 变量插值,零依赖。
|
Package vars 提供轻量的 ${KEY} 变量插值,零依赖。 |
Click to show internal directories.
Click to hide internal directories.