✅ Go 版本核心功能已完成,与 C++ 版本功能对等
include/rqdata/ # 头文件
src/ # 源文件
build/ # CMake 构建
thirdparty/vendor/ # 第三方库
cmd/ # CLI 命令
internal/
├── auth/ # 认证模块
├── client/ # HTTP 客户端
├── converter/ # 数据转换
├── loader/ # 命令加载器
└── validator/ # 参数验证
main.go # 入口
go.mod # 依赖管理
| C++ 模块 | Go 模块 | 状态 |
|---|---|---|
| auth.cpp/h | internal/auth/ | ✅ 完成 |
| data_client.cpp/h | internal/client/ | ✅ 完成 |
| converter.cpp/h | internal/converter/ | ✅ 完成 |
| validation.cpp/h | internal/validator/ | ✅ 完成 |
| command_loader.cpp/h | internal/loader/ | ✅ 完成 |
| main.cpp | main.go + cmd/ | ✅ 完成 |
- libcurl (HTTP 客户端)
- nlohmann_json (JSON 解析)
- CLI11 (命令行解析)
- fmt (格式化)
- csv-parser (CSV 解析)
- net/http (标准库,HTTP 客户端)
- encoding/json (标准库,JSON)
- encoding/csv (标准库,CSV)
- github.com/spf13/cobra (CLI)
- github.com/zalando/go-keyring (密钥环)
- golang.org/x/term (终端输入)
- C++: 需要静态链接 libcurl,Windows 需要 vcpkg
- Go: 原生静态编译,无需任何配置
- C++: CMake + Make,首次编译较慢
- Go: 秒级编译,增量编译极快
- C++: 需要各平台工具链和依赖
- Go: 单命令交叉编译所有平台
- C++: ~3000 行(含头文件)
- Go: ~1500 行(更简洁)
mkdir build && cd build
cmake ..
make -j4go build -o rqdata main.goGOOS=linux go build -o rqdata-linux
GOOS=darwin go build -o rqdata-macos
GOOS=windows go build -o rqdata.exe- 安装 Go 1.21+
- 运行
go mod tidy下载依赖 - 运行
go build编译 - 测试基本功能(auth, schema list)
- 运行完整测试套件验证兼容性