v0.3.2
- 六接口(init/chunk/merge/check/task/abort)+ 分片幂等 + 断点续传 + .part 原子改名 + 合并整文件 MD5 校验 + 秒传 - 零宿主耦合:Repository 接口注入存储、Envelope 注入响应封装、 OnMerged/OnInstantHit 回调衔接业务(仅依赖既有 gin/uuid) - 自 FileUpload 项目 restful/upload 抽出;maintain-service 云端文件为其首个宿主
…
…
…
…
…
…
…
…
…
…
…
…
zogo
zeroone Go 通用库(单仓多包,顶层即包)。被各后端服务以 Go module 依赖引用:
go get git.zeroonesoft.cn/golib/zogo/xxx
包清单
服务开发
| 包 | 用途 | 文档 |
|---|---|---|
httpx |
Gin 统一出入参:OkJson/ErrorJson(CodeMsg 错误码透传)、Handle/HandleResult、Parse(uri→query→header→json 顺序绑定 + binding 校验收口)、ParseXML | httpx/README.md |
logger |
logrus 日志初始化(控制台彩色 + 按天轮转文件 + 历史压缩) | logger/README.md |
wsc |
WebSocket 服务端框架(会话/房间/路由)+ 配套客户端(自动重连),同一 Message 信封 | wsc/README.md |
jwtx |
轻量 HMAC-SHA256 令牌签发与校验 | jwtx/README.md |
snowid |
雪花 ID 生成器(进程内单例)+ GORM 模型 ID 钩子模板 | snowid/README.md |
基础工具(自 go-hua 迁入)
| 包 | 用途 | 文档 |
|---|---|---|
stringx |
字符串/切片工具:随机串、UUID、通配符匹配、校验规则、中文首字母 | stringx/README.md |
timex |
时间日期:NT/UTC 时间戳互转、时间字符串转毫秒时间戳、月份天数 | timex/README.md |
filex |
文件目录:运行目录定位、路径存在性、进度下载、Zip 压缩解压(GBK 兼容) | filex/README.md |
cryptox |
MD5 摘要:字符串/字节集/文件 | cryptox/README.md |
netx |
本机网络信息:IPv4 与 MAC 地址枚举 | netx/README.md |
numx |
数值工具:流量格式化、低位取整、多整数取最值 | numx/README.md |
verx |
版本号:点分版本解析/还原/比较 | verx/README.md |
counter |
线程安全 string→int64 键值计数器(原 go-hua/single 更名) | counter/README.md |
queue |
链式先进先出队列(哨兵头结点风格) | queue/README.md |
网络协议(自 go-hua 迁入)
| 包 | 用途 | 文档 |
|---|---|---|
frame |
应用层帧协议:8 字节头(版本+命令+长度+流 ID)+ 数据,Conn 读写封装 | frame/README.md |
proto |
长度前缀封包协议编解码(含 CRC32 校验版) | proto/README.md |
bytepacket |
二进制封包/解包(小端序,兼容易语言协议、GBK、易语言日期) | bytepacket/README.md |
conn |
net.Conn 装饰器:透明叠加带宽限速(rate)与流量统计(flow) | conn/README.md |
listen |
net.Listener 简单封装(Close 解除 Accept 阻塞) | listen/README.md |
flow |
并发安全流量统计(收发字节累计/取走清零) | flow/README.md |
rate |
按秒配额的带宽限速器 | rate/README.md |
httpprobe |
按首部字节探测 HTTP/HTTPS 流量(原 go-hua/http 更名) | httpprobe/README.md |
httpc |
HTTP 客户端:GET/POST/PUT/DELETE/代理/Digest 认证(原 go-hua/httpurl 更名) | httpc/README.md |
nettest |
网络连通性探测:TCP 端口 + 原始 ICMP Ping,统计成功率与延迟 | nettest/README.md |
spmux |
单端口多路复用:按报文特征分发到 HTTP/HTTPS/TCP 三个 Listener | spmux/README.md |
ipratelimiter |
按 IP 维度的令牌桶限流器 | ipratelimiter/README.md |
系统与硬件(自 go-hua 迁入)
| 包 | 用途 | 文档 |
|---|---|---|
arp |
系统 ARP 表读取与 IP→MAC 查询(定时刷新缓存) | arp/README.md |
dll |
Windows API 封装:互斥体防多开、ShellExecute、窗口操作 | dll/README.md |
hardware |
硬件信息采集(WMI)与硬件变更检测 | hardware/README.md |
monitor |
系统资源监控:CPU/内存/磁盘/网络/进程/连接/主机,后台采集 | monitor/README.md |
dotnet |
.NET Framework 安装信息(Windows 注册表,原 go-hua/netFramework 更名) | dotnet/README.md |
ipquery |
IP/域名归属地查询(ip2region xdb 全内存加载) | ipquery/README.md |
mail |
SMTP 邮件发送(收/抄/密送、HTML 正文) | mail/README.md |
certx |
x509 证书解析校验与自签生成(原 go-hua/ssl 更名) | certx/README.md |
gormtypes |
GORM/JSON 双向转换类型:八种 Slice/Map 类型(原 go-hua/datatypes 更名) | gormtypes/README.md |
cafegame |
网咖游戏识别与运行记录上报(网吧业务专用) | cafegame/README.md |
历史说明:v0.1.0 曾存在独立包
wscclient,v0.2.0 起并入wsc(wsc.Client)—— 客户端与服务端共用信封定义,协议单一来源防两端漂移。
go-hua 迁移对照
2026-09 自 github.com/4566704/go-hua 迁入并整理,消费方替换对照:
| go-hua 包 | zogo 去处 | 说明 |
|---|---|---|
common |
拆分为 stringx / timex / filex / cryptox / netx / numx / verx;frame.go 独立为 frame |
拆大杂烩,按职责归位 |
http |
httpprobe |
实为协议探测,与 net/http 混淆故更名 |
httpurl |
httpc |
实为 HTTP 客户端 |
single |
counter |
实为键值计数器 |
netFramework |
dotnet |
实为 .NET Framework 信息查询 |
ssl |
certx |
实为 x509 证书操作 |
datatypes |
gormtypes |
避免与 gorm.io/datatypes 混淆 |
log |
不迁入(已弃用) | 消费方用 logger(logrus);spmux 已改为 spmux.Logger 接口 |
snowid / gormhook |
已被 snowid 覆盖(v0.2.0 吸收),不再迁入 |
|
httpx |
已存在,仅并入 ParseXML 与全套单元测试 |
|
remote |
并入 remote-core 仓库(被控端远程能力归位) | |
qps |
不迁入 | 空壳包(无代码) |
迁移中修复的缺陷见各包 README:frame(SetData 未返回错误、ReadFrame 短读/吞帧)、
ipratelimiter(包子句大写不规范)、httpx(README 笔误)等。
约定
- 通用性准入:被 ≥2 个服务复制使用过的包才进入本仓库;仅单服务使用的留在服务内。
- 改动流程:在本仓库修复/演进 → 打 tag(如 v0.2.0)→ 各服务
go get git.zeroonesoft.cn/golib/zogo@v0.2.0。 - 本地联动开发:在
D:\zomaintain\backend\go.work中use D:/golib/zogo(go.work 不提交)。 - go.mod 声明 go 版本不高于最低版本消费方,不要随意上调。
- 依赖版本声明「最低可用」而非 latest(如 gorm 锁消费方在用的版本),避免把消费方依赖图顶出新版本引发不兼容。
- 每个包自带 README.md(定位/用法/注意事项),改 API 先改文档;可运行例程统一放
examples/<包名>/main.go。
Languages
Go
100%