foundation

package
v0.9.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 28, 2026 License: Apache-2.0 Imports: 0 Imported by: 0

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} 变量插值,零依赖。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL