Help us shape the future of Go! Take the 2026 Go Developer Survey

pkg/

directory
v0.32.41 Latest Latest
Warning

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

Go to latest
Published: Oct 31, 2026 License: Apache-2.0

README

pkg/ - core 横切设施

此目录存放 core 内部的横切工具和通用组件。

目录结构

pkg/
├── auth/        # 认证(JWT/API Key)
├── errors/      # 错误处理(错误码定义在 contracts errcode)
├── gate/        # 功能门控
├── logger/      # 日志工具封装
├── metrics/     # 指标
├── middleware/  # HTTP 中间件
├── paircode/    # 配对口令归一(p2pc 口令;直传域 + 联邦域共用单源)
├── registry/    # 联邦注册中心基址归一(直传域 + 联邦域共用单源)
├── resp/        # HTTP 响应工具
├── security/    # 安全设施(SSRF 校验等)
├── transfer/    # 传输相关
└── utils/       # 通用工具函数

与 kit 的边界

位置 用途 定位
pigeonbox/kit 通用工具库(async/retry/ratelimit/… 共 28 包) 零生态依赖,任何项目可 go get 消费
本 pkg/ core 横切设施 与 core 业务/配置绑定的专用设施,随 core 版本走

主要组件

errors/
  • AppError 错误结构
  • errcode(定义在 contracts)到错误消息/HTTP 响应的映射
logger/
  • Zap 日志封装
  • 日志级别、文件输出配置
  • 便捷日志方法
resp/
  • HTTP 响应工具函数
  • Success/Error/Page 等标准响应
  • 错误码自动映射
paircode/ 与 registry/
  • 跨域共用事实的单源下沉(避免各域各存一份同值副本、改一处即分叉):
    • paircode.Normalize:配对口令(p2pc)归一——去空白/连字符、大写、4-4-4 分组;
    • registry.Effective:联邦注册中心(p2pd)基址归一——多主备取首个、留空回填官方公共。

添加新工具

  1. 在 pkg/ 下创建新目录
  2. 实现工具函数
  3. 在需要的地方导入使用
import "github.com/pigeonbox/core/pkg/yourpkg"

Directories

Path Synopsis
Package baseurl 公开链接 base 解析(请求级公开地址推断的单源)。
Package baseurl 公开链接 base 解析(请求级公开地址推断的单源)。
shareblocked.go 分享管控拒绝态错误(治理状态机的 typed error 词汇表)。
shareblocked.go 分享管控拒绝态错误(治理状态机的 typed error 词汇表)。
Package gate 上传/下载准入闸门。
Package gate 上传/下载准入闸门。
ctx.go — Ctx 系日志门面:业务排障日志带 trace_id 的一等入口。
ctx.go — Ctx 系日志门面:业务排障日志带 trace_id 的一等入口。
Package memkv 进程内字符串 TTL KV(主包仅依赖标准库与 oekit/concurrency/async,后者为纯标准库实现的外部模块):单机内存模式的共享存储原语。
Package memkv 进程内字符串 TTL KV(主包仅依赖标准库与 oekit/concurrency/async,后者为纯标准库实现的外部模块):单机内存模式的共享存储原语。
redisshim
Package redisshim 单机内存模式下 go-redis 命令面的等价实现(memkv.Store 的 redis 兼容垫片):redis.host 为空时 anonymous/presign 等域的 NewService 以此 兜底,取件码映射/直传会话等短 TTL 数据存进程内——不跨进程共享、重启即失, DB 仍是唯一真相源。
Package redisshim 单机内存模式下 go-redis 命令面的等价实现(memkv.Store 的 redis 兼容垫片):redis.host 为空时 anonymous/presign 等域的 NewService 以此 兜底,取件码映射/直传会话等短 TTL 数据存进程内——不跨进程共享、重启即失, DB 仍是唯一真相源。
Package metrics 业务指标(治理 2026-10-03)。
Package metrics 业务指标(治理 2026-10-03)。
auditactor.go 审计操作者提取:从请求上下文取 (用户ID, 用户名, IP)。
auditactor.go 审计操作者提取:从请求上下文取 (用户ID, 用户名, IP)。
Package paircode 配对口令(p2pc 口令)归一——联邦域口令处理的单源。
Package paircode 配对口令(p2pc 口令)归一——联邦域口令处理的单源。
Package registry 联邦注册中心(p2pd)基址归一——联邦域的单源。
Package registry 联邦注册中心(p2pd)基址归一——联邦域的单源。
Package security 提供独立的安全原语:
Package security 提供独立的安全原语:
Package transfer 提供传输日志(上传/下载)的异步记录。
Package transfer 提供传输日志(上传/下载)的异步记录。
uploadpath.go 上传相对路径的统一生成收口。
uploadpath.go 上传相对路径的统一生成收口。

Jump to

Keyboard shortcuts

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