Build Status Crates.io Docs.rs

Coinbase pro client for Rust

Supports SYNC and ASYNC operations.

Example

Cargo.toml: toml [dependencies] coinbase-pro-rs = "0.1.7"

Async

```rust extern crate hyper; extern crate tokio; extern crate coinbaseprors;

use hyper::rt::Future; use coinbaseprors::{Public, ASync, SANDBOX_URL};

fn main() { let client: Public = Public::Public::newwithkeepalive(SANDBOXURL, false); // if keepalive is not disables - tokio::run will hold the connection without exiting the example let f = client.gettime() .maperr(|| ()) .and_then(|time| { println!("Coinbase.time: {}", time.iso); Ok(()) });

tokio::run(f); // waiting for tokio

} ```

Sync

```rust extern crate coinbaseprors;

use coinbaseprors::{Public, Sync, SANDBOX_URL};

fn main() { let client: Public = Public::new(SANDBOXURL); let time = client.gettime().unwrap(); println!("Coinbase.time: {}", time.iso); } ```

Api supported:

API

FIX API

by request

OrderBook

after Websocket

test results

cargo test -- --test-threads=1 // to avoid "Rate limit exceeded" error

``` running 25 tests test adapters::tests::testasync ... ok test adapters::tests::testsync ... ok test private::tests::testcancelall ... ok test private::tests::testcancelorder ... ok test private::tests::testgetaccount ... ok test private::tests::testgetaccounthist ... ok test private::tests::testgetaccountholds ... ignored test private::tests::testgetaccounts ... ok test private::tests::testgetfills ... ok test private::tests::testgetorder ... ok test private::tests::testgetorders ... ignored test private::tests::testgetpub ... ok test private::tests::testgettrailingvolume ... ok test private::tests::testneworderser ... ok test private::tests::testsetorderlimit ... ok test private::tests::testsetorderlimitgtc ... ok test private::tests::testsetordermarket ... ok test public::tests::testgetbook ... ok test public::tests::testgetcandles ... ok test public::tests::testgetcurrencies ... ok test public::tests::testgetproducts ... ok test public::tests::testgetstats24h ... ok test public::tests::testgetticker ... ok test public::tests::testgettime ... ok test public::tests::testgettrades ... ok

test result: ok. 23 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out ```