sko-toolkit

module
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Jun 11, 2026 License: MIT

README

🛠️ sko-toolkit

Go Version License GitHub release Go Report Card codecov

🚀 统一的 Go 开发工具包 — 整合基础工具链与 ZeroTier SDK,提供缓存、Docker、GitOps、翻译、浏览器自动化、ZeroTier 网络管理等一站式解决方案。

📦 项目起源:本项目由 go-geniusgo-utilsgo-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!

  1. Fork 仓库
  2. 创建特性分支:git checkout -b feature/amazing
  3. 提交变更:git commit -m 'feat: add amazing feature'
  4. 推送分支:git push origin feature/amazing
  5. 提交 Pull Request
代码规范

📜 许可证

本项目采用 MIT 许可证

🔗 相关链接

📦 版本历史

详见 CHANGELOG.md


🦄 Made with ❤️ by topic-kit contributors

Directories

Path Synopsis
Package browser 提供基于 logrus 的日志记录器
Package browser 提供基于 logrus 的日志记录器
examples
zerotier command
zerotier/mcp command
image
Package zerotier 提供 ZeroTier API 的 Go SDK
Package zerotier 提供 ZeroTier API 的 Go SDK
central
Package central 提供 ZeroTier Central API 的 Go 客户端
Package central 提供 ZeroTier Central API 的 Go 客户端
client
Package client 提供 ZeroTier Service API(本地节点)的 Go 客户端
Package client 提供 ZeroTier Service API(本地节点)的 Go 客户端
mcp

Jump to

Keyboard shortcuts

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