docs.rs failed to build ctp-rust-1.0.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build:
ctp-rust-1.0.3
CTP Rust SDK
一个为CTP (综合交易平台) 提供的安全、现代化的Rust绑定库,支持Linux和macOS系统。
✨ 特性
- 🔒 类型安全: 使用Rust的类型系统确保内存安全和线程安全
- 🌍 跨平台支持: 原生支持Linux和macOS (x86_64/ARM64)
- 📝 编码自动转换: 自动处理GB18030到UTF-8的编码转换
- ⚡ 高性能: 零拷贝设计,最小化性能开销
- 📚 完整文档: 提供完整的中文API文档和使用示例
- 🛡️ 安全FFI: 安全的C++库绑定,避免内存泄露和悬空指针
- 🔄 异步支持: 支持tokio异步运行时
🚀 快速开始
安装依赖
在你的 Cargo.toml
中添加:
[]
= "1.0.0"
= { = "1.0", = ["full"] }
基本使用示例
行情订阅
use *;
use ;
use ;
use ;
// 实现行情回调处理器
;
async
交易接口
use ;
use ;
;
async
📖 详细文档
系统要求
- 操作系统: Linux (x86_64) 或 macOS (x86_64/ARM64)
- Rust版本: 1.70+
- CTP库: 需要相应平台的CTP动态库
目录结构
ctp-rust/
├── src/
│ ├── lib.rs # 主库入口
│ ├── error.rs # 错误定义
│ ├── encoding.rs # 编码转换
│ ├── types.rs # 数据类型定义
│ ├── ffi.rs # FFI绑定声明
│ └── api/
│ ├── mod.rs # API模块
│ ├── md_api.rs # 行情API
│ ├── trader_api.rs # 交易API
│ └── callbacks.rs # 回调处理
├── libs/
│ └── ctp/
│ ├── include/ # CTP头文件
│ └── lib/
│ ├── linux64/ # Linux动态库
│ └── mac64/ # macOS动态库
├── tests/ # 测试文件
├── examples/ # 示例代码
└── docs/ # 文档
编码处理
CTP库使用GB18030编码,而Rust默认使用UTF-8。本SDK自动处理两种编码之间的转换:
use GbkConverter;
// UTF-8 转 GB18030
let gb_bytes = utf8_to_gb18030?;
// GB18030 转 UTF-8
let utf8_string = gb18030_to_utf8?;
// 固定长度字节数组转换
use ;
let instrument_id = from_utf8_string?;
let back_to_string = instrument_id.to_utf8_string?;
错误处理
SDK提供了完整的错误处理机制:
use ;
match some_ctp_function
平台支持
Linux
# 确保系统有必要的库
# 设置库文件路径
# 运行程序
macOS
# 设置库文件路径
# 在Apple Silicon Mac上可能需要Rosetta
# 如果遇到架构问题,可以用Rosetta运行:
🔧 构建配置
自定义构建
如果你需要自定义CTP库的位置,可以设置环境变量:
功能特性
[]
= { = "1.0.0", = ["channel"] }
可用特性:
channel
: 启用crossbeam-channel支持ctp
: 默认启用,CTP SDK支持
📋 API参考
主要类型
MdApi
: 行情API接口TraderApi
: 交易API接口ReqUserLoginField
: 用户登录请求RspUserLoginField
: 用户登录响应DepthMarketDataField
: 深度行情数据OrderField
: 报单信息TradeField
: 成交信息
回调接口
MdSpiHandler
: 行情回调处理接口TraderSpiHandler
: 交易回调处理接口
编码工具
GbkConverter
: GB18030/UTF-8编码转换器StringConvert
: 字符串转换特质
🧪 测试
运行所有测试:
运行编码测试:
运行集成测试(需要CTP库):
📚 示例
更多示例请查看 examples/
目录:
md_basic.rs
: 基础行情订阅trader_basic.rs
: 基础交易功能encoding_demo.rs
: 编码转换示例error_handling.rs
: 错误处理示例
🤝 贡献
欢迎贡献代码!请遵循以下步骤:
- Fork本仓库
- 创建feature分支 (
git checkout -b feature/amazing-feature
) - 提交你的修改 (
git commit -m 'Add some amazing feature'
) - 推送到分支 (
git push origin feature/amazing-feature
) - 开启Pull Request
⚠️ 注意事项
- 库文件: 需要获取相应平台的CTP库文件并放置在正确位置
- 网络环境: 连接CTP服务器需要稳定的网络环境
- 账户权限: 需要有效的CTP账户和相应的交易权限
- 风险提示: 期货交易有风险,请谨慎使用
📄 许可证
本项目采用MIT或Apache-2.0双重许可证。详见 LICENSE-MIT 和 LICENSE-APACHE 文件。
🔗 相关链接
📞 联系方式
如有问题或建议,请通过以下方式联系:
- GitHub Issues: 提交问题
- Email: 36625090@qq.com
免责声明: 本软件仅供学习和研究使用,作者不对因使用本软件导致的任何损失承担责任。期货投资有风险,入市需谨慎。