
🚀 统一的 Go 开发工具包 — 整合基础工具链与 ZeroTier SDK,提供缓存、Docker、GitOps、翻译、浏览器自动化、ZeroTier 网络管理等一站式解决方案。
📦 项目起源:本项目由 go-genius、go-utils、go-toolkit 三个仓库整合而来。
🎯 目标:规范命名、统一 API、提升测试覆盖率至 70%+,打造可生产使用的 Go 工具包。
✨ 模块一览
| 模块 |
导入路径 |
说明 |
| 🏗️ build |
github.com/topic-kit/sko-toolkit/build |
跨平台构建、版本管理 |
| 💾 cache |
github.com/topic-kit/sko-toolkit/cache |
并发安全内存缓存 |
| 🐳 docker |
github.com/topic-kit/sko-toolkit/docker |
镜像构建与容器管理 |
| 🔄 gitops |
github.com/topic-kit/sko-toolkit/gitops |
版本标签与 GitHub Release |
| 🌐 browser |
github.com/topic-kit/sko-toolkit/browser |
浏览器自动化(原 rod) |
| 🌍 trans |
github.com/topic-kit/sko-toolkit/trans |
讯飞翻译 API 集成 |
| 🖼️ image |
github.com/topic-kit/sko-toolkit/image |
图像处理与时间表生成 |
| 🔍 discovery |
github.com/topic-kit/sko-toolkit/discovery |
网络服务发现 |
| 🌐 zerotier |
github.com/topic-kit/sko-toolkit/zerotier |
ZeroTier SDK(本地节点 + 云端管理 + MCP) |
🚀 快速开始
安装
go get github.com/topic-kit/sko-toolkit
基础使用
package main
import (
"context"
"fmt"
"time"
"github.com/topic-kit/sko-toolkit/cache"
"github.com/topic-kit/sko-toolkit/trans"
"github.com/topic-kit/sko-toolkit/zerotier"
)
func main() {
ctx := context.Background()
// 缓存使用
c := cache.New()
c.Set(ctx, "key", "value", 10*time.Minute)
// 翻译使用
t := trans.New(
trans.WithAppID("your-app-id"),
trans.WithSecret("your-secret"),
trans.WithFromLang("cn"),
trans.WithToLang("en"),
)
result, err := t.Translate(ctx, "你好世界")
if err == nil {
fmt.Println(result)
}
// ZeroTier 本地节点
local := zerotier.NewClient()
status, _ := local.Status(ctx)
fmt.Printf("ZeroTier 节点在线: %v\n", status.Online)
// ZeroTier 云端管理
cloud := zerotier.NewCentral("your_api_token")
networks, _ := cloud.Networks().List(ctx)
fmt.Printf("管理中的网络数: %d\n", len(networks))
}
🌐 ZeroTier SDK(亮点模块)
本项目的 ZeroTier 模块是经过精心设计的高质量 SDK:
- 🏛️ 门面层(facade):
zerotier 顶层包提供 type X = pkg.X 形式的纯 alias 聚合
- ⚙️ Functional Options:客户端通过
WithXXX 函数式配置
- 🧱 Builder 模式:复杂请求体(Network / Member)使用 Builder,内嵌目标 struct
- 🧩 Service 切分:按业务域拆分
Networks() / Peers() / Controller() / Members()
- 🔌 HTTP 与领域分离:私有
do(method, path, body) 复用 HTTP 调用
- 🧰 错误包装:底层错误用
fmt.Errorf("...: %w", err) 向上传播
- 📝 可空字段:使用指针 +
omitempty 精确控制 JSON 序列化
- 🤖 MCP 集成:自描述注册表 + switch 调度,工具自动暴露
MCP Server 模式
import "github.com/topic-kit/sko-toolkit/zerotier/mcp"
server := mcp.NewServer(ztClient, ztCentral)
server.Serve()
启动后 MCP 客户端可发现并调用所有 ZeroTier 操作(参见 zerotier/mcp/)。
🧪 测试与开发
# 运行所有测试
go test ./...
# 测试覆盖率
go test -cover ./...
# 静态检查
go vet ./...
gofmt -l .
# 跨平台构建
go build ./...
🗂️ 项目结构
sko-toolkit/
├── build/ # 构建工具
├── cache/ # 内存缓存
├── docker/ # Docker 工具
├── gitops/ # GitOps 工具
├── browser/ # 浏览器自动化(来自 rod/)
├── trans/ # 翻译服务
├── image/ # 图像处理
├── discovery/ # 服务发现
├── zerotier/ # ZeroTier SDK
│ ├── client/ # 本地节点 API
│ ├── central/ # ZeroTier Central API
│ └── mcp/ # MCP Server
├── docs/ # 开发文档
├── examples/ # 使用示例
├── .github/ # GitHub Actions
├── LICENSE # MIT 许可证
├── VERSION # 当前版本
├── go.mod # Go 模块
└── README.md # 本文件
📋 系统要求
- Go: >= 1.24
- Git: >= 2.30
- Docker: >= 20.10(可选,仅 docker 模块)
🤝 贡献
欢迎 PR / Issue!
- Fork 仓库
- 创建特性分支:
git checkout -b feature/amazing
- 提交变更:
git commit -m 'feat: add amazing feature'
- 推送分支:
git push origin feature/amazing
- 提交 Pull Request
代码规范
📜 许可证
本项目采用 MIT 许可证。
🔗 相关链接
📦 版本历史
详见 CHANGELOG.md。
🦄 Made with ❤️ by topic-kit contributors