pkg/

directory
v0.9.0 Latest Latest
Warning

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

Go to latest
Published: Aug 19, 2026 License: Apache-2.0

Directories

Path Synopsis
Package ability 提供泛型技能/效果管线(Ability Pipeline)原语,类似虚幻引擎的 GAS (Gameplay Ability System)的核心骨架,但遵循"机制而非策略"——只提供管线调度机制, 不绑定具体伤害公式/buff 类型/特效系统。
Package ability 提供泛型技能/效果管线(Ability Pipeline)原语,类似虚幻引擎的 GAS (Gameplay Ability System)的核心骨架,但遵循"机制而非策略"——只提供管线调度机制, 不绑定具体伤害公式/buff 类型/特效系统。
api
Package api 提供 HTTP/API 层的安全、错误处理、元数据与可观测机制。
Package api 提供 HTTP/API 层的安全、错误处理、元数据与可观测机制。
afterwork
Package afterwork 提供请求级后台任务延寿(waitUntil 语义)。
Package afterwork 提供请求级后台任务延寿(waitUntil 语义)。
audit
Package audit 提供操作审计日志:结构化记录"谁在何时对什么资源做了什么操作", 仅记录成功的请求(失败请求走普通日志),用于合规与运维审计。
Package audit 提供操作审计日志:结构化记录"谁在何时对什么资源做了什么操作", 仅记录成功的请求(失败请求走普通日志),用于合规与运维审计。
authz
Package authz 提供授权(authorization)机制:在认证(pkg/middleware/auth、pkg/token 确认 "你是谁 + 有哪些角色")之上,判定"这个身份能否对某资源做某动作"。
Package authz 提供授权(authorization)机制:在认证(pkg/middleware/auth、pkg/token 确认 "你是谁 + 有哪些角色")之上,判定"这个身份能否对某资源做某动作"。
callbacks
Package callbacks 提供非侵入的执行切面:在某个执行单元的开始/结束/出错时机 触发回调,用于统一注入可观测性(trace、metrics、日志)而不改动业务代码。
Package callbacks 提供非侵入的执行切面:在某个执行单元的开始/结束/出错时机 触发回调,用于统一注入可观测性(trace、metrics、日志)而不改动业务代码。
dberr
Package dberr 把数据库驱动错误翻译为 pkg/errors 的 *Status, 让仓储层只抛原生 driver error,中间件/网关层统一拿到带业务码的错误。
Package dberr 把数据库驱动错误翻译为 pkg/errors 的 *Status, 让仓储层只抛原生 driver error,中间件/网关层统一拿到带业务码的错误。
featureflag
Package featureflag 提供本地评估的特性开关与 A/B 实验: 布尔开关、百分比灰度、按属性定向、多变体实验,均基于确定性哈希分桶, 同一标识(如 userID)多次评估结果稳定,无需远程调用。
Package featureflag 提供本地评估的特性开关与 A/B 实验: 布尔开关、百分比灰度、按属性定向、多变体实验,均基于确定性哈希分桶, 同一标识(如 userID)多次评估结果稳定,无需远程调用。
handler
Package handler 提供声明式 HTTP handler 包装器:把 auth 策略 + 资源注入 + 错误归一化从业务 handler 上移到包装器,handler 只关心 (ctx, req) => (resp, error)。
Package handler 提供声明式 HTTP handler 包装器:把 auth 策略 + 资源注入 + 错误归一化从业务 handler 上移到包装器,handler 只关心 (ctx, req) => (resp, error)。
metadata
Package metadata 提供服务间调用的透传元数据机制。
Package metadata 提供服务间调用的透传元数据机制。
metadata/propagation
Package propagation 提供 MD 在 HTTP / gRPC 传输层的注入与提取实现。
Package propagation 提供 MD 在 HTTP / gRPC 传输层的注入与提取实现。
token
Package token 提供会话令牌的全生命周期管理:签发、验证、续签、注销。
Package token 提供会话令牌的全生命周期管理:签发、验证、续签、注销。
Package behaviortree 提供泛型行为树原语,用于游戏 AI 决策(小兵/怪物/NPC)。
Package behaviortree 提供泛型行为树原语,用于游戏 AI 决策(小兵/怪物/NPC)。
client
grpcclient/resolver/consul
Package consul registers a Consul-backed gRPC name resolver.
Package consul registers a Consul-backed gRPC name resolver.
grpcclient/resolver/etcd
Package etcd registers an etcd-backed gRPC name resolver.
Package etcd registers an etcd-backed gRPC name resolver.
grpcclient/resolver/k8s
Package k8s registers a Kubernetes-backed gRPC name resolver.
Package k8s registers a Kubernetes-backed gRPC name resolver.
grpcclient/resolver/nacos
Package nacos registers a Nacos-backed gRPC name resolver.
Package nacos registers a Nacos-backed gRPC name resolver.
grpcclient/resolver/polaris
Package polaris registers a Polaris-backed gRPC name resolver.
Package polaris registers a Polaris-backed gRPC name resolver.
grpcclient/xds
Package xds 启用客户端 xDS 支持。
Package xds 启用客户端 xDS 支持。
Package cmdlog 提供帧索引指令日志与快照检查点原语,用于断线重连追帧。
Package cmdlog 提供帧索引指令日志与快照检查点原语,用于断线重连追帧。
domain
chat
Package chat 提供频道聊天消息:按 channel 持久化 + 自增 message_id 游标分页。
Package chat 提供频道聊天消息:按 channel 持久化 + 自增 message_id 游标分页。
energy
Package energy 提供体力/精力系统原语:惰性时间回复 + 消耗 + 充值 + 倒计时计算。
Package energy 提供体力/精力系统原语:惰性时间回复 + 消耗 + 充值 + 倒计时计算。
group
Package group 提供群组实体:成员角色、邀请/申请审核、公告、最大人数、封禁名单。
Package group 提供群组实体:成员角色、邀请/申请审核、公告、最大人数、封禁名单。
inbox
Package inbox 提供点对点离线消息收件箱:已读/未读、游标分页、ACK。
Package inbox 提供点对点离线消息收件箱:已读/未读、游标分页、ACK。
mail
Package mail 提供游戏内信箱原语:泛型附件 + 领取状态 + 过期 + 批量发送 + Store 接口。
Package mail 提供游戏内信箱原语:泛型附件 + 领取状态 + 过期 + 批量发送 + Store 接口。
notification
Package notification 提供离线通知队列:用户不在线时存通知,上线后拉取, 与 pkg/router 的实时路由互补——router 投在线者,notification 投离线者。
Package notification 提供离线通知队列:用户不在线时存通知,上线后拉取, 与 pkg/router 的实时路由互补——router 投在线者,notification 投离线者。
party
Package party 提供无权威的多人小团体原语:Leader + Members + 加入请求队列, 成员变更时广播给全员。
Package party 提供无权威的多人小团体原语:Leader + Members + 加入请求队列, 成员变更时广播给全员。
relationship
Package relationship 提供社交图谱原语:用二部有向图刻画"谁对谁是什么关系", 支持好友(双向)、关注(单向)、拉黑(单向隔离)、群组成员(带角色)等多种语义, 通过状态编码 + position 游标实现高效查询与分页。
Package relationship 提供社交图谱原语:用二部有向图刻画"谁对谁是什么关系", 支持好友(双向)、关注(单向)、拉黑(单向隔离)、群组成员(带角色)等多种语义, 通过状态编码 + position 游标实现高效查询与分页。
signin
Package signin 提供每日签到原语:月 bitmap 存储 + 连签天数 + 补签 + 奖励回调。
Package signin 提供每日签到原语:月 bitmap 存储 + 连签天数 + 补签 + 奖励回调。
storage
Package storage 提供版本化的对象存储原语:owner + collection + key + value + version, 通过乐观并发控制(OCC)保证并发写不覆盖,支持三种写语义与懒淘汰索引。
Package storage 提供版本化的对象存储原语:owner + collection + key + value + version, 通过乐观并发控制(OCC)保证并发写不覆盖,支持三种写语义与懒淘汰索引。
tournament
Package tournament 提供锦标赛(时间窗排行榜):在 pkg/leaderboard 之上 增加"按 cron 表达式周期性重置"的能力,每周期一个独立榜单,到期自动滚动到下一周期。
Package tournament 提供锦标赛(时间窗排行榜):在 pkg/leaderboard 之上 增加"按 cron 表达式周期性重置"的能力,每周期一个独立榜单,到期自动滚动到下一周期。
wallet
Package wallet 提供虚拟货币/积分/库存的账本式钱包: 采用"不可变事务日志(append-only ledger) + 当前余额派生"双模型, 通过 changeset 差值更新原子校验,避免超扣/超发。
Package wallet 提供虚拟货币/积分/库存的账本式钱包: 采用"不可变事务日志(append-only ledger) + 当前余额派生"双模型, 通过 changeset 差值更新原子校验,避免超扣/超发。
Package fieldmask 提供字段级脏标记与增量编码原语,用于 MMO/SLG 场景下的 细粒度状态同步——只传输被修改的字段,而非全量实体快照。
Package fieldmask 提供字段级脏标记与增量编码原语,用于 MMO/SLG 场景下的 细粒度状态同步——只传输被修改的字段,而非全量实体快照。
Package foundation 是零或极少外部依赖的基础原语与数据结构,是整个框架的最底层。
Package foundation 是零或极少外部依赖的基础原语与数据结构,是整个框架的最底层。
bitmap
Package bitmap 提供位图:用 1 bit 表示一个布尔状态,极省内存的大规模标记与集合运算。
Package bitmap 提供位图:用 1 bit 表示一个布尔状态,极省内存的大规模标记与集合运算。
buildinfo
Package buildinfo 在运行时暴露构建信息(版本 / commit / 构建时间 / Go 版本 / 模块 / 是否 dirty),用于 /version 端点、启动日志、诊断。
Package buildinfo 在运行时暴露构建信息(版本 / commit / 构建时间 / Go 版本 / 模块 / 是否 dirty),用于 /version 端点、启动日志、诊断。
chanx
Package chanx 提供无界 channel 等 channel 扩展原语。
Package chanx 提供无界 channel 等 channel 扩展原语。
ctxkey
Package ctxkey 提供类型安全的 context.Context 键。
Package ctxkey 提供类型安全的 context.Context 键。
dag
Package dag 提供一个轻量的有向无环图(DAG)执行器: 按依赖关系将节点拓扑分层,同一层内的节点并行执行,层间串行。
Package dag 提供一个轻量的有向无环图(DAG)执行器: 按依赖关系将节点拓扑分层,同一层内的节点并行执行,层间串行。
fixedpoint
Package fixedpoint 提供 Q32.32 定点数原语,用于帧同步/状态同步场景下的跨平台 确定性数学计算。
Package fixedpoint 提供 Q32.32 定点数原语,用于帧同步/状态同步场景下的跨平台 确定性数学计算。
fsm
Package fsm 提供泛型有限状态机原语:声明式定义"状态 + 事件 → 目标状态"的 合法转移表,运行时 Fire(event) 只允许沿合法转移推进,非法转移报错而非静默改状态。
Package fsm 提供泛型有限状态机原语:声明式定义"状态 + 事件 → 目标状态"的 合法转移表,运行时 Fire(event) 只允许沿合法转移推进,非法转移报错而非静默改状态。
generic
Package generic 提供一组类型安全的泛型/反射小工具。
Package generic 提供一组类型安全的泛型/反射小工具。
keyedmutex
Package keyedmutex 提供按 key 的细粒度锁:同一 key 的持有者互斥(串行), 不同 key 之间互不阻塞(并行)。
Package keyedmutex 提供按 key 的细粒度锁:同一 key 的持有者互斥(串行), 不同 key 之间互不阻塞(并行)。
options
Package options 提供分层的功能选项(functional options)模式: 框架定义一组“通用选项”,各实现方再追加自己的“专属选项”,调用方把两类选项 混在同一个 []Option 里传入;框架与实现各自用类型安全的方式提取属于自己的部分。
Package options 提供分层的功能选项(functional options)模式: 框架定义一组“通用选项”,各实现方再追加自己的“专属选项”,调用方把两类选项 混在同一个 []Option 里传入;框架与实现各自用类型安全的方式提取属于自己的部分。
pagination
Package pagination 提供 keyset(游标)分页原语:把"下一页起点"编码成一个**不透明**的、URL 安全的 游标字符串,客户端原样回传即可翻页。
Package pagination 提供 keyset(游标)分页原语:把"下一页起点"编码成一个**不透明**的、URL 安全的 游标字符串,客户端原样回传即可翻页。
pipeline
Package pipeline 提供类型安全的多阶段流水线:数据经过多个 Stage 顺序处理, 每个 Stage 可配置并发 worker 数(扇出)、带背压(有界 channel)。
Package pipeline 提供类型安全的多阶段流水线:数据经过多个 Stage 顺序处理, 每个 Stage 可配置并发 worker 数(扇出)、带背压(有界 channel)。
priority
Package priority 提供泛型优先级队列:基于二叉堆实现,支持 Push/Pop/Peek/Update/Remove。
Package priority 提供泛型优先级队列:基于二叉堆实现,支持 Push/Pop/Peek/Update/Remove。
ringbuffer
Package ringbuffer 提供定长环形缓冲:只保留最近 N 条,写满后覆盖最旧的, O(1) 追加。
Package ringbuffer 提供定长环形缓冲:只保留最近 N 条,写满后覆盖最旧的, O(1) 追加。
safe
Package safe 提供 panic 恢复相关的小工具:把 panic 转成带堆栈的 error, 以及安全启动 goroutine(panic 不会崩进程)。
Package safe 提供 panic 恢复相关的小工具:把 panic 转成带堆栈的 error, 以及安全启动 goroutine(panic 不会崩进程)。
semaphore
Package semaphore 提供加权信号量原语:限制对共享资源的最大并发占用量。
Package semaphore 提供加权信号量原语:限制对共享资源的最大并发占用量。
sketch
Package sketch 提供监控/风控常用的概率数据结构:用极小、常量级内存换取"近似但够用"的答案。
Package sketch 提供监控/风控常用的概率数据结构:用极小、常量级内存换取"近似但够用"的答案。
syncx
Package syncx 提供一组便捷的并发原语(泛型),补齐标准库与 pkg/xgo 之外常被手搓、 又容易写错的模式:
Package syncx 提供一组便捷的并发原语(泛型),补齐标准库与 pkg/xgo 之外常被手搓、 又容易写错的模式:
tween
Package tween 提供缓动函数与贝塞尔曲线插值原语,用于平滑动画和轨迹模拟。
Package tween 提供缓动函数与贝塞尔曲线插值原语,用于平滑动画和轨迹模拟。
vars
Package vars 提供轻量的 ${KEY} 变量插值,零依赖。
Package vars 提供轻量的 ${KEY} 变量插值,零依赖。
xgo
Package game 提供游戏引擎机制,分为 core(实时模拟)和 meta(成长/社交)两个子组。
Package game 提供游戏引擎机制,分为 core(实时模拟)和 meta(成长/社交)两个子组。
gameloop
Package gameloop 是一个「机制而非策略」的定步长游戏循环原语,用于在 beauty 上 搭帧同步(lockstep)/状态同步的服务端骨架。
Package gameloop 是一个「机制而非策略」的定步长游戏循环原语,用于在 beauty 上 搭帧同步(lockstep)/状态同步的服务端骨架。
gameroom
Package gameroom 提供 dedicated server 房间生命周期 FSM(Waiting→Running→Draining→Closed)。
Package gameroom 提供 dedicated server 房间生命周期 FSM(Waiting→Running→Draining→Closed)。
geohash
Package geohash 提供经纬度的 Geohash 编码/解码、邻居计算与覆盖查询,纯标准库。
Package geohash 提供经纬度的 Geohash 编码/解码、邻居计算与覆盖查询,纯标准库。
inputclock
Package inputclock 记录客户端帧与服务器帧映射,并估算 RTT(延迟补偿入口)。
Package inputclock 记录客户端帧与服务器帧映射,并估算 RTT(延迟补偿入口)。
interpolate
Package interpolate 提供客户端渲染侧的状态插值与抖动缓冲。
Package interpolate 提供客户端渲染侧的状态插值与抖动缓冲。
lagcomp
Package lagcomp 在 snapbuf + inputclock 之上提供 server rewind 查询(延迟补偿)。
Package lagcomp 在 snapbuf + inputclock 之上提供 server rewind 查询(延迟补偿)。
leaderboard
Package leaderboard 提供排行榜的内存排名缓存:用堆排序维护每个榜的有序结构, O(log N) 查"我的名次"、按名次取记录,避免高频读时每次 ORDER BY 击穿数据库。
Package leaderboard 提供排行榜的内存排名缓存:用堆排序维护每个榜的有序结构, O(log N) 查"我的名次"、按名次取记录,避免高频读时每次 ORDER BY 击穿数据库。
leveling
Package leveling 提供经验值 / 等级曲线原语:给定当前经验加一笔增量,算出新等级、 是否升级、跨了几级、当前等级内进度。
Package leveling 提供经验值 / 等级曲线原语:给定当前经验加一笔增量,算出新等级、 是否升级、跨了几级、当前等级内进度。
loot
Package loot 提供加权随机抽取原语:抽卡 / 开宝箱 / 怪物掉落 / 直播抽奖。
Package loot 提供加权随机抽取原语:抽卡 / 开宝箱 / 怪物掉落 / 直播抽奖。
match
Package match 提供有状态实时会话原语,采用 actor 模型: 每个会话(房间/对战/协作编辑)由独立 goroutine 驱动,固定帧率 tick, 所有输入(业务数据、成员变更、同步信号)经带缓冲 channel 串行消费, 状态封装在 goroutine 内,无需锁。
Package match 提供有状态实时会话原语,采用 actor 模型: 每个会话(房间/对战/协作编辑)由独立 goroutine 驱动,固定帧率 tick, 所有输入(业务数据、成员变更、同步信号)经带缓冲 channel 串行消费, 状态封装在 goroutine 内,无需锁。
matchmaker
Package matchmaker 提供基于属性匹配的组队原语。
Package matchmaker 提供基于属性匹配的组队原语。
momentum
Package momentum 提供"连击 + 热度时间衰减"原语:按 key 追踪连续触发的连击数, 并维护一个随时间指数衰减的热度值。
Package momentum 提供"连击 + 热度时间衰减"原语:按 key 追踪连续触发的连击数, 并维护一个随时间指数衰减的热度值。
pathfind
Package pathfind 提供网格地图上的 A* 寻路,纯计算、纯标准库、零依赖。
Package pathfind 提供网格地图上的 A* 寻路,纯计算、纯标准库、零依赖。
prd
Package prd 提供伪随机概率补偿(Pseudo-Random Distribution)算法。
Package prd 提供伪随机概率补偿(Pseudo-Random Distribution)算法。
questlog
Package questlog 提供任务 / 成就的进度追踪:定义一组带目标值的任务,累加进度, 达标后可领取(一次),支持前置依赖与周期重置。
Package questlog 提供任务 / 成就的进度追踪:定义一组带目标值的任务,累加进度, 达标后可领取(一次),支持前置依赖与周期重置。
rating/glicko2
Package glicko2 提供 Glicko-2 评分原语:根据一组对局结果更新玩家的评分、 评分偏差与波动性。
Package glicko2 提供 Glicko-2 评分原语:根据一组对局结果更新玩家的评分、 评分偏差与波动性。
rating/trueskill
Package trueskill 提供 TrueSkill 评分原语:用高斯分布 (μ, σ) 表示玩家实力, 根据 1v1 或多队伍对局结果做贝叶斯更新。
Package trueskill 提供 TrueSkill 评分原语:用高斯分布 (μ, σ) 表示玩家实力, 根据 1v1 或多队伍对局结果做贝叶斯更新。
reddot
Package reddot 提供小红点 / 未读聚合树:把散落各处的未读数按树形层级聚合, 父节点的未读 = 所有子节点未读之和,叶子清零自动向上传播。
Package reddot 提供小红点 / 未读聚合树:把散落各处的未读数按树形层级聚合, 父节点的未读 = 所有子节点未读之和,叶子清零自动向上传播。
replicate
Package replicate 提供状态同步的增量投影原语:DirtySet + AOI diff + Delta。
Package replicate 提供状态同步的增量投影原语:DirtySet + AOI diff + Delta。
snapbuf
Package snapbuf 提供固定深度的环形快照缓冲,用于延迟补偿/server rewind。
Package snapbuf 提供固定深度的环形快照缓冲,用于延迟补偿/server rewind。
spatial
Package spatial 提供网格空间索引:把实体按坐标分桶到固定大小的网格单元, 支持"范围查询"(附近的人/实体)与 KNN(最近的 N 个),避免全量遍历。
Package spatial 提供网格空间索引:把实体按坐标分桶到固定大小的网格单元, 支持"范围查询"(附近的人/实体)与 KNN(最近的 N 个),避免全量遍历。
spatial/aoi
Package aoi 在 pkg/spatial 之上提供兴趣区域(AOI)集合 diff:enter/leave/stay。
Package aoi 在 pkg/spatial 之上提供兴趣区域(AOI)集合 diff:enter/leave/stay。
spatial/quadtree
Package quadtree 提供自适应四叉树空间索引,用于实体密度不均匀的 2D 场景。
Package quadtree 提供自适应四叉树空间索引,用于实体密度不均匀的 2D 场景。
versus
Package versus 提供"限时多方对抗计分"原语:N 个阵营在一段倒计时内实时累计分, 到点定胜负。
Package versus 提供"限时多方对抗计分"原语:N 个阵营在一段倒计时内实时累计分, 到点定胜负。
governance
bannednodes
Package bannednodes 提供单次请求内的节点禁用机制。
Package bannednodes 提供单次请求内的节点禁用机制。
circuitbreaker
Package circuitbreaker 提供节点级熔断器。
Package circuitbreaker 提供节点级熔断器。
overloadctrl
Package overloadctrl 提供反馈驱动的自适应限流。
Package overloadctrl 提供反馈驱动的自适应限流。
router
Package router 提供服务发现与负载均衡之间的路由过滤层。
Package router 提供服务发现与负载均衡之间的路由过滤层。
Package handoff 提供跨进程实体迁移的协议原语,用于 MMO 无缝大世界场景下 玩家跨服务器边界时的实体所有权转移。
Package handoff 提供跨进程实体迁移的协议原语,用于 MMO 无缝大世界场景下 玩家跨服务器边界时的实体所有权转移。
Package idgen 提供分布式唯一 ID 生成器(Snowflake 算法),纯标准库实现。
Package idgen 提供分布式唯一 ID 生成器(Snowflake 算法),纯标准库实现。
infra
k8s
Package k8s 提供基于 Kubernetes 原生选主能力实现 pkg/dlock.Elector 的后端, 使 Cron 等"多实例只该有一个在跑"的场景可以直接用集群内已有的 k8s API, 不必额外运维一套 etcd/Redis。
Package k8s 提供基于 Kubernetes 原生选主能力实现 pkg/dlock.Elector 的后端, 使 Cron 等"多实例只该有一个在跑"的场景可以直接用集群内已有的 k8s API, 不必额外运维一套 etcd/Redis。
mysql
Package mysql 基于 MySQL Advisory Lock(GET_LOCK / RELEASE_LOCK)实现 pkg/dlock 的 Locker 与 Elector。
Package mysql 基于 MySQL Advisory Lock(GET_LOCK / RELEASE_LOCK)实现 pkg/dlock 的 Locker 与 Elector。
pg
Package pg 基于 PostgreSQL Advisory Lock 实现 pkg/dlock 的 Locker 与 Elector。
Package pg 基于 PostgreSQL Advisory Lock 实现 pkg/dlock 的 Locker 与 Elector。
redis
Package redis 提供基于 Redis 的基建适配:分布式锁/选主(实现 pkg/dlock)与 带 TTL 的原子 KV 存储(实现 pkg/kvstore.Store,给 counter/cooldown/idempotency 等原语一个真实的跨实例后端)。
Package redis 提供基于 Redis 的基建适配:分布式锁/选主(实现 pkg/dlock)与 带 TTL 的原子 KV 存储(实现 pkg/kvstore.Store,给 counter/cooldown/idempotency 等原语一个真实的跨实例后端)。
Package media 提供直播/视频服务的编排薄机制:多路流管理(Hub)、子进程监督 (Supervisor,如 ffmpeg 转码进程,含崩溃重启)与 OTel 运维指标。
Package media 提供直播/视频服务的编排薄机制:多路流管理(Hub)、子进程监督 (Supervisor,如 ffmpeg 转码进程,含崩溃重启)与 OTel 运维指标。
hls
Package hls 提供一个直播/点播 HLS origin:管理滚动分片窗口、生成 m3u8 播放列表, 并作为 http.Handler 挂在任意 mux(如 pkg/service/webserver)上分发。
Package hls 提供一个直播/点播 HLS origin:管理滚动分片窗口、生成 m3u8 播放列表, 并作为 http.Handler 挂在任意 mux(如 pkg/service/webserver)上分发。
hlsmux
Package hlsmux 把 RTMP 采集到的 FLV(H.264 + AAC)喂给 bluenviron/gohlslib,产出 生产级 HLS——支持 MPEG-TS、fMP4 和 **LL-HLS(低延迟)** 三种 variant。
Package hlsmux 把 RTMP 采集到的 FLV(H.264 + AAC)喂给 bluenviron/gohlslib,产出 生产级 HLS——支持 MPEG-TS、fMP4 和 **LL-HLS(低延迟)** 三种 variant。
rtmp
Package rtmp 提供一个 RTMP 采集(ingest)服务端,薄封装 github.com/yutopp/go-rtmp。
Package rtmp 提供一个 RTMP 采集(ingest)服务端,薄封装 github.com/yutopp/go-rtmp。
webrtc
Package webrtc 提供 WebRTC 的 WHIP(采集)/WHEP(分发)薄机制,基于纯 Go 的 pion/webrtc(零 cgo)。
Package webrtc 提供 WebRTC 的 WHIP(采集)/WHEP(分发)薄机制,基于纯 Go 的 pion/webrtc(零 cgo)。
webrtc/sfu
Package sfu 在 pkg/media/webrtc 之上提供一个「会议室」SFU 原语:多人实时音视频, 每个参会者推自己的轨道、订阅其他所有人的轨道,服务端做选择性转发(Selective Forwarding Unit,不混流不转码)。
Package sfu 在 pkg/media/webrtc 之上提供一个「会议室」SFU 原语:多人实时音视频, 每个参会者推自己的轨道、订阅其他所有人的轨道,服务端做选择性转发(Selective Forwarding Unit,不混流不转码)。
Package messaging 提供消息投递与事件分发的抽象,解决"把消息从 A 送到 B"的问题。
Package messaging 提供消息投递与事件分发的抽象,解决"把消息从 A 送到 B"的问题。
eventbus
Package eventbus 提供进程内、按主题(topic)分发的泛型事件总线:发布者按 topic 发事件,订阅者按 topic 注册回调处理函数,解耦"谁发"与"谁收"。
Package eventbus 提供进程内、按主题(topic)分发的泛型事件总线:发布者按 topic 发事件,订阅者按 topic 注册回调处理函数,解耦"谁发"与"谁收"。
mq
Package mq 提供传输无关的消息队列抽象:发布/订阅接口 + 一个「消费者即 beauty.Service」 的运行原语 + 处理中间件。
Package mq 提供传输无关的消息队列抽象:发布/订阅接口 + 一个「消费者即 beauty.Service」 的运行原语 + 处理中间件。
mq/otelmq
Package otelmq 为 pkg/mq 提供 OpenTelemetry trace 透传(opt-in)。
Package otelmq 为 pkg/mq 提供 OpenTelemetry trace 透传(opt-in)。
stream
Package stream 提供流式扇出(广播)原语:把一个事件源 fan-out 给多个订阅者, 适合 SSE / WebSocket 等"一份数据推给 N 个连接"的场景。
Package stream 提供流式扇出(广播)原语:把一个事件源 fan-out 给多个订阅者, 适合 SSE / WebSocket 等"一份数据推给 N 个连接"的场景。
webhook
Package webhook 提供事件驱动的 Webhook 通知:按事件类型过滤、自定义 header、 可选 body 模板、可选 HMAC 签名,异步触发并带指数退避重试。
Package webhook 提供事件驱动的 Webhook 通知:按事件类型过滤、自定义 header、 可选 body 模板、可选 HMAC 签名,异步触发并带指数退避重试。
middleware
antireplay
Package antireplay 提供基于 nonce 的 HTTP 防重放中间件。
Package antireplay 提供基于 nonce 的 HTTP 防重放中间件。
bodylimit
Package bodylimit 提供 HTTP 请求体大小限制中间件,防止客户端发送过大 body 耗尽服务端内存。
Package bodylimit 提供 HTTP 请求体大小限制中间件,防止客户端发送过大 body 耗尽服务端内存。
callbacks
Package callbacks 把 pkg/callbacks 的切面接入 beauty 的 HTTP / gRPC 服务: 在每个请求前后触发已注册的 callbacks.Handler(全局或随 ctx 局部), 用于统一注入 trace / metrics / 日志,而无需改动业务 handler。
Package callbacks 把 pkg/callbacks 的切面接入 beauty 的 HTTP / gRPC 服务: 在每个请求前后触发已注册的 callbacks.Handler(全局或随 ctx 局部), 用于统一注入 trace / metrics / 日志,而无需改动业务 handler。
etag
Package etag 提供 HTTP ETag / 条件请求中间件:为 GET 响应计算强 ETag,并在客户端带 If-None-Match 命中时回 304 Not Modified,省去重复传输的带宽。
Package etag 提供 HTTP ETag / 条件请求中间件:为 GET 响应计算强 ETag,并在客户端带 If-None-Match 命中时回 304 Not Modified,省去重复传输的带宽。
grpcauth
Package grpcauth 提供轻量级 gRPC 静态 Bearer Token 认证拦截器。
Package grpcauth 提供轻量级 gRPC 静态 Bearer Token 认证拦截器。
signverify
Package signverify 提供基于 HMAC-SHA256 的 HTTP 请求签名校验中间件。
Package signverify 提供基于 HMAC-SHA256 的 HTTP 请求签名校验中间件。
tenant
Package tenant 提供多租户隔离中间件。
Package tenant 提供多租户隔离中间件。
Package orchestration 提供任务编排与调度机制,解决"按时间/顺序/事务语义执行一组工作"的问题。
Package orchestration 提供任务编排与调度机制,解决"按时间/顺序/事务语义执行一组工作"的问题。
delayqueue
Package delayqueue 提供定点单次触发的延迟任务原语:注册一个未来时刻要执行的 回调,到点由后台 goroutine 触发;支持按 key 取消 / 改期。
Package delayqueue 提供定点单次触发的延迟任务原语:注册一个未来时刻要执行的 回调,到点由后台 goroutine 触发;支持按 key 取消 / 改期。
saga
Package saga 提供跨服务 Saga 编排:按顺序执行一组"正向操作",任一步失败时 逆序执行已成功步骤的"补偿操作",达成最终一致。
Package saga 提供跨服务 Saga 编排:按顺序执行一组"正向操作",任一步失败时 逆序执行已成功步骤的"补偿操作",达成最终一致。
scheduler
Package scheduler 提供工作池式任务调度器:生产者把任务投递到队列, N 个 worker goroutine 并发消费;支持运行时 Pause/Resume 与优雅停止。
Package scheduler 提供工作池式任务调度器:生产者把任务投递到队列, N 个 worker goroutine 并发消费;支持运行时 Pause/Resume 与优雅停止。
tcc
Package tcc 提供 TCC(Try-Confirm-Cancel)事务编排原语,用于涉及资金/道具的 强一致性分布式操作。
Package tcc 提供 TCC(Try-Confirm-Cancel)事务编排原语,用于涉及资金/道具的 强一致性分布式操作。
timerqueue
Package timerqueue 提供基于最小堆的延时任务队列,由单协程驱动,适用于海量 倒计时场景(如 SLG 建筑升级、科技研究、造兵、Buff 过期等)。
Package timerqueue 提供基于最小堆的延时任务队列,由单协程驱动,适用于海量 倒计时场景(如 SLG 建筑升级、科技研究、造兵、Buff 过期等)。
txn
Package txn 提供跨域事务协调:让 wallet/storage/notification 等域包 在一个逻辑事务边界内原子提交或全部回滚。
Package txn 提供跨域事务协调:让 wallet/storage/notification 等域包 在一个逻辑事务边界内原子提交或全部回滚。
worker
Package worker 提供可组合到 beauty.App 的后台工作者 Service 实现。
Package worker 提供可组合到 beauty.App 的后台工作者 Service 实现。
Package resilience 提供容错与流控机制,保护服务在异常条件下仍可降级运行。
Package resilience 提供容错与流控机制,保护服务在异常条件下仍可降级运行。
backoff
Package backoff 提供指数退避 + 抖动(jitter)的重试原语,纯标准库。
Package backoff 提供指数退避 + 抖动(jitter)的重试原语,纯标准库。
circuitbreaker
Package circuitbreaker 提供熔断器原语:当下游错误率超过阈值时自动"断开"保护调用方, 经过冷却期后进入半开探测,探测成功则恢复、失败则继续断开。
Package circuitbreaker 提供熔断器原语:当下游错误率超过阈值时自动"断开"保护调用方, 经过冷却期后进入半开探测,探测成功则恢复、失败则继续断开。
cooldown
Package cooldown 提供按 key 的冷却(CD)原语:某个动作触发后,要等到冷却结束 才能再次触发。
Package cooldown 提供按 key 的冷却(CD)原语:某个动作触发后,要等到冷却结束 才能再次触发。
counter
Package counter 提供按 key 的滑动窗口计数与时间窗配额,纯内存实现。
Package counter 提供按 key 的滑动窗口计数与时间窗配额,纯内存实现。
hedge
Package hedge 实现对冲请求(hedged / backup requests):一个操作发出后,若在 delay 内还没返回, 就并发补发一个副本(最多 maxHedge 个额外副本),取最先成功返回者,随后取消其余。
Package hedge 实现对冲请求(hedged / backup requests):一个操作发出后,若在 delay 内还没返回, 就并发补发一个副本(最多 maxHedge 个额外副本),取最先成功返回者,随后取消其余。
ratelimit
Package ratelimit 提供基于键的限流原语:令牌桶 + 滑动窗口两种实现, 外加 HTTP 中间件,可与 pkg/handler 组合(声明式 WithRatelimit)。
Package ratelimit 提供基于键的限流原语:令牌桶 + 滑动窗口两种实现, 外加 HTTP 中间件,可与 pkg/handler 组合(声明式 WithRatelimit)。
throttle
Package throttle 提供批量聚合触发原语:攒满 N 条或到达 T 时间即批量 flush。
Package throttle 提供批量聚合触发原语:攒满 N 条或到达 T 时间即批量 flush。
timeout
Package timeout 提供统一的超时执行包装:给任意函数加超时 + panic 恢复 + 错误分类。
Package timeout 提供统一的超时执行包装:给任意函数加超时 + panic 恢复 + 错误分类。
Package rollback 提供 GGPO 风格的回滚重演算(rollback netcode)编排原语, 解决"客户端预测 + 服务器权威"架构下的延迟消除问题。
Package rollback 提供 GGPO 风格的回滚重演算(rollback netcode)编排原语, 解决"客户端预测 + 服务器权威"架构下的延迟消除问题。
service
Package store 提供存储与共享状态的抽象,是需要"记住东西"的机制的统一归属地。
Package store 提供存储与共享状态的抽象,是需要"记住东西"的机制的统一归属地。
cache
Package cache 提供有界内存缓存(带淘汰)与防击穿加载器,是 web/API 读路径的常用原语:
Package cache 提供有界内存缓存(带淘汰)与防击穿加载器,是 web/API 读路径的常用原语:
dlock
Package dlock 定义跨进程分布式锁与选主(leader election)的后端无关接口。
Package dlock 定义跨进程分布式锁与选主(leader election)的后端无关接口。
ephemeral
Package ephemeral 提供短期 TTL KV:不版本化、不持久,纯内存 + 到点自动过期。
Package ephemeral 提供短期 TTL KV:不版本化、不持久,纯内存 + 到点自动过期。
idempotency
Package idempotency 提供幂等执行原语:同一 key 的重复请求只执行一次, 后续请求(含并发)复用首次结果,直到该 key 过期。
Package idempotency 提供幂等执行原语:同一 key 的重复请求只执行一次, 后续请求(含并发)复用首次结果,直到该 key 过期。
kvstore
Package kvstore 定义一个带 TTL 的原子键值存储接口,供需要"跨进程共享状态"的 原语(counter / cooldown / idempotency)接入分布式后端(如 Redis)。
Package kvstore 定义一个带 TTL 的原子键值存储接口,供需要"跨进程共享状态"的 原语(counter / cooldown / idempotency)接入分布式后端(如 Redis)。
loadbalance
Package loadbalance 提供通用的负载均衡算法原语,不绑定任何 RPC/服务发现框架。
Package loadbalance 提供通用的负载均衡算法原语,不绑定任何 RPC/服务发现框架。
shard
Package shard 给「有状态服务」提供多副本分片路由的薄机制:用一致性哈希把每个 key (streamKey / roomID / userID 等)确定性地归属到某一个实例,请求落到非归属实例时 反向代理转发给归属实例。
Package shard 给「有状态服务」提供多副本分片路由的薄机制:用一致性哈希把每个 key (streamKey / roomID / userID 等)确定性地归属到某一个实例,请求落到非归属实例时 反向代理转发给归属实例。
tally
Package tally 提供高频累计聚合 + 批量刷写:把海量小额增量在内存里按 key 累加, 定时(或攒够阈值)合并成一批交给 flush 回调一次性处理,削平写放大。
Package tally 提供高频累计聚合 + 批量刷写:把海量小额增量在内存里按 key 累加, 定时(或攒够阈值)合并成一批交给 flush 回调一次性处理,削平写放大。
Package timeline 提供帧索引事件时间线原语,解决"逻辑计算瞬间完成、表现播放 需要时间"的表现与逻辑分离问题。
Package timeline 提供帧索引事件时间线原语,解决"逻辑计算瞬间完成、表现播放 需要时间"的表现与逻辑分离问题。
Package transport 提供实时传输与长连接层,解决"客户端与服务端之间的持久通道"问题。
Package transport 提供实时传输与长连接层,解决"客户端与服务端之间的持久通道"问题。
p2p
Package p2p 提供面向 P2P 数据通道的传输无关抽象:把 WebRTC DataChannel 从 "媒体通话工具"变为"通用 P2P 数据管道",支持可靠/不可靠双通道语义。
Package p2p 提供面向 P2P 数据通道的传输无关抽象:把 WebRTC DataChannel 从 "媒体通话工具"变为"通用 P2P 数据管道",支持可靠/不可靠双通道语义。
p2p/quictransport
Package quictransport 提供基于 QUIC 的 p2p.Transport 实现。
Package quictransport 提供基于 QUIC 的 p2p.Transport 实现。
p2p/signaling
Package signaling 提供面向 P2P DataChannel 的信令服务:通过 WebSocket 中继 WebRTC 协商消息(offer/answer/candidate),让 peers 能自动发现、配对、建立 直连的 DataChannel——无需业务代码接触底层 ICE/SDP 细节。
Package signaling 提供面向 P2P DataChannel 的信令服务:通过 WebSocket 中继 WebRTC 协商消息(offer/answer/candidate),让 peers 能自动发现、配对、建立 直连的 DataChannel——无需业务代码接触底层 ICE/SDP 细节。
p2p/tcptransport
Package tcptransport 提供基于 TCP 的 p2p.Transport 实现。
Package tcptransport 提供基于 TCP 的 p2p.Transport 实现。
p2p/topology
Package topology 提供 P2P 网络的拓扑策略:当 peer 加入/离开房间时,决定哪些 peer 之间应建立直连。
Package topology 提供 P2P 网络的拓扑策略:当 peer 加入/离开房间时,决定哪些 peer 之间应建立直连。
presence
Package presence 提供在线状态(在场追踪)原语:维护"谁在哪个流(stream)里" 的双向索引,支持 O(1) 按流查询成员、按会话查询所在流,以及 join/leave 事件总线。
Package presence 提供在线状态(在场追踪)原语:维护"谁在哪个流(stream)里" 的双向索引,支持 O(1) 按流查询成员、按会话查询所在流,以及 join/leave 事件总线。
presence/status
Package status 把用户的在线状态变化(上线/下线/进出流)推送给关注他的人。
Package status 把用户的在线状态变化(上线/下线/进出流)推送给关注他的人。
quic
Package quic 提供基于 QUIC(quic-go)的连接层,作为 pkg/ws(WebSocket/TCP)之外 面向实时/游戏同步的可选传输。
Package quic 提供基于 QUIC(quic-go)的连接层,作为 pkg/ws(WebSocket/TCP)之外 面向实时/游戏同步的可选传输。
resume
Package resume 提供断线重连的在场状态还原:客户端用 refresh token 重连, 服务端换出 userID,查 presence 看用户还在哪些流,返回流列表让客户端自动重连。
Package resume 提供断线重连的在场状态还原:客户端用 refresh token 重连, 服务端换出 userID,查 presence 看用户还在哪些流,返回流列表让客户端自动重连。
router
Package router 提供多语义消息路由:把一条消息发给一组人(presence IDs)、 一个流(stream)的全部成员、或所有人,并支持一帧内多条消息攒批下发。
Package router 提供多语义消息路由:把一条消息发给一组人(presence IDs)、 一个流(stream)的全部成员、或所有人,并支持一帧内多条消息攒批下发。
sse
Package sse 提供 Server-Sent Events 的轻量封装,屏蔽 SSE 在 Go 里的常见坑: 自动设置流式响应头、解除本连接的写超时(避免被 server WriteTimeout 掐断)、 每条事件后自动 flush(穿透 otelhttp / compress 等包装链)、客户端断开时结束。
Package sse 提供 Server-Sent Events 的轻量封装,屏蔽 SSE 在 Go 里的常见坑: 自动设置流式响应头、解除本连接的写超时(避免被 server WriteTimeout 掐断)、 每条事件后自动 flush(穿透 otelhttp / compress 等包装链)、客户端断开时结束。
ws
Package ws 基于 github.com/coder/websocket 提供 WebSocket 的轻量封装: 自动完成握手升级、统一关闭语义,并把 *http.Request 透传给业务, 便于读取 query / header / 子协议 / 鉴权信息。
Package ws 基于 github.com/coder/websocket 提供 WebSocket 的轻量封装: 自动完成握手升级、统一关闭语义,并把 *http.Request 透传给业务, 便于读取 query / header / 子协议 / 鉴权信息。
ws/session
Package session 提供基于 WebSocket 的有状态会话高阶封装。
Package session 提供基于 WebSocket 的有状态会话高阶封装。
utils

Jump to

Keyboard shortcuts

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