#trading #bitcoin #poloniex #kraken #bitstamp

coinnect

一个用于连接各种加密货币交易所的Rust库

30个版本

使用旧Rust 2015

0.5.12 2018年10月3日
0.5.10 2018年3月25日
0.5.9 2018年1月8日
0.5.8 2017年12月28日
0.1.8 2017年3月10日

#2500 in 魔法豆

Download history 82/week @ 2024-02-24 2/week @ 2024-03-02

84次每月下载

MIT许可证

280KB
5K SLoC

Coinnect

crates.io Downloads from crates.io Build Status doc.rs MIT licensed

Coinnect是一个Rust库,旨在提供对各种加密货币交易所的REST API的完全访问(以下为支持交易所的列表)。所有方法都消耗HTTPS api。本库的目的是不进行数据流(在这种情况下您应使用websocket/FIX)。

您基本有两种方法来检索数据:使用您目标平台提供的原始API,或者使用更友好、更安全的通用Coinnect API。理想情况下,当Coinnect API无法检索您所需的数据/执行您想要的操作时,请使用原始API。

警告:此库目前处于高度实验阶段。请勿投资您负担不起的金额。这是一个个人项目,我无法对库的故障负责,这可能导致资金损失。

本项目遵循MIT许可证的条款。

交易所支持

交易所 原始API支持 通用API支持 备注
Bitstamp X X 目前并非所有方法都已实现。
Kraken X X -
Poloniex X X -
Bittrex X X -

如果您喜欢的交易所未在上述列表中,您可以在Coinnect的下一个版本中投票此处以添加它。

通用API支持

  • 行情
  • 订单簿
  • 余额
  • 添加新订单
  • ... 更多即将推出!

请随意提交PR以添加对您喜欢的交易所的支持 ;)

文档

使用方法

将此添加到您的 Cargo.toml

[dependencies]
coinnect = "0.5"

并将此添加到您的crate根目录

extern crate coinnect;

对于可选参数,大多数方法需要提供一个空的 str ("") 或 Option (None),如果您不希望指定它们。

从0.2版本开始,您可以通过通用的API以相同的方式在交易所之间进行通信。请注意,此功能正在积极开发中。有关更多信息,请查看ExchangeApi trait文档。

示例

下面的示例展示了如何连接到Poloniex

extern crate coinnect;

use coinnect::poloniex::api::PoloniexApi;
use coinnect::poloniex::credentials::PoloniexCreds;

fn main() {
    // We create a PoloniexApi by providing API key/secret
    // You can give an empty str if you only use public methods
    let creds = PoloniexCreds::new("my_optionnal_name", "api_key", "api_secret");
    let mut my_api = PoloniexApi::new(creds).unwrap();

    // Let's look at the ticker!
    let list_coins = my_api.return_ticker().unwrap();

    for coin in list_coins {
        // please visit Poloniex API documentation to know how the data is returned
        // or look at the coinnect documentation
        let name = coin.0;
        let price = coin.1.as_object().unwrap().get("last").unwrap().as_str().unwrap();

        println!("Coin {} has price : {}", name, price);
    }
}

有关更多示例,请参阅 示例

测试

您可以使用 cargo test 运行测试套件,以测试非私有数据请求(这将忽略与私有请求相关的测试)。您可以使用 cargo test --features "bitstamp_private_tests" 运行与bitstamp交易所相关的私有测试。在运行私有测试之前,请确保在根目录下有一个具有以下结构的 keys_real.json 文件

{
    "account_kraken": {
        "api_key"   : "123456789ABCDEF",
        "api_secret": "ABC&EF?abcdef"
    },
    "account_poloniex": {
        "api_key"   : "XYXY-XYXY-XYXY-XY",
        "api_secret": "A0A0B1B1C2C2"
    },
    "account_bitstamp": {
        "api_key"    : "XYXY-XYXY-XYXY-XY",
        "api_secret" : "A0A0B1B1C2C2",
        "customer_id": "123456"
    }
}

您必须插入您的真实API密钥,否则私有测试可能会失败。运行测试时不会执行任何操作:没有测试会开设头寸,或提款等。测试仅检查正确的认证方法和正确的解析。您可以通过检查 测试 文件夹来确保这一点,并查看 Cargo.toml 文件以获取功能列表的完整列表。

贡献

我们非常欢迎您的贡献。请随时提出问题或发送拉取请求。请注意,任何提交给项目以供包含的贡献都将根据LICENSE中给出的条款进行许可。

免责声明

本“软件产品”由“提供商”按“现状”和“所有错误”提供。提供商就本软件产品的安全性、适用性、病毒、不准确、印刷错误或其他有害组件不做出任何类型的声明或保证。使用任何软件都存在固有的危险,您单独负责确定本软件产品是否与您的设备以及安装在您的设备上的其他软件兼容。您还单独负责保护您的设备并备份您的数据,并且提供商不会对您在使用、修改或分发本软件产品时可能遭受的任何损害负责。

依赖关系

~9–22MB
~348K SLoC