4 个版本

0.1.3 2023年11月27日
0.1.2 2023年11月22日
0.1.1 2023年11月21日
0.1.0 2023年11月21日

#166 in 金融

每月下载 27

Apache-2.0

11MB
18K SLoC

包含 (ELF 库, 5.5MB) thosttraderapi_se.so, (ELF 库, 4.5MB) thostmduserapi_se.so

ctp-sys

以 Rust 的方式,简化对接 CTPAPI 的过程,节省精力,快速上手

简介

ctp-sys 提供的 ctp 官方 ctpapi(c++) 的 rust 版本,使用 bindgen 转换 ctpapi(c++) 生成。

ctp-sys 目前支持 6.6.5.x(linux)版本,对应 ctpapi(c++) 的生产版本: v6.6.5_20210924

通过 ctp-sys 库只能连接支持 ctpapi(c++) 官方实现的柜台,如:simnow; 不支持连接所谓的兼容 ctpapi(c++) 接口。

问题记录

  1. 使用相对路径时,wrapper.h 中头文件需要使用双引号,否则会报错Unable to generate bindings: ClangDiagnostic("wrapper.h:1:10: error: 'ctp/6.6.7_20220304/linux64/tradeapi_se/ThostFtdcUserApiStruct.h' file not found with <angled> include; use \"quotes\" instead\n")
  2. linux 库名需要lib+"库名称"软链接后才能被 ld 读取找到
  3. c++的头文件需要使用wrapper.hpp引入,否则无法识别class关键字:Generating Bindings to C++
  4. bindgen 不支持 c++ 的虚拟函数,使用rust-share方案。

相关资源

  1. API 来源:上期技术官方网站
  2. tradeapi v6.6.5_20210924
  3. 请参看官方文档

致谢

  1. OPENCTP
  2. rust-share

依赖项

~12–24MB
~325K SLoC