4 releases (2 breaking)

0.3.0 Sep 5, 2020
0.2.1 Feb 16, 2020
0.2.0 Nov 30, 2019
0.1.0 Aug 19, 2019

#200 in #api-wrapper

MIT license

42KB
936 lines

(Unofficial) Luno Rust API Wrapper 🦀🚀

Rust codecov

A work-in-progress.

Please read the license. This software is by no means production ready and use of it is at your own risk!

Installation

In your Cargo.toml include:

[dependencies]
luno = "0.3.0"

Documentation

Documentation can be found here.

Examples

Examples of calls can be found in the examples/ directory. Clone this repository and run a specific example, such as get-trades.rs with:

cargo run --example get-trades

Example with list_trades():

use luno::{LunoClient, TradingPair};

#[tokio::main]
async fn main() {
    let key = String::from("LUNO_API_KEY");
    let secret = String::from("LUNO_API_SECRET");

    let client = LunoClient::new(key, secret);

    match client.list_trades(TradingPair::XBTZAR).await {
        Err(e) => eprintln!("{:?}", e),
        Ok(result) => {
            if let Some(trade) = result.trades {
                println!("{:?}", trade);
            }
        }
    }
}

Results:

Trade { volume: 0.005686, timestamp: 1561918948454, price: 173001.00, is_buy: false }
Trade { volume: 0.007, timestamp: 1561918942586, price: 173002.00, is_buy: true }
Trade { volume: 0.006936, timestamp: 1561918937500, price: 173002.00, is_buy: true }
Trade { volume: 0.006345, timestamp: 1561918911780, price: 173378.00, is_buy: true }
Trade { volume: 0.0005, timestamp: 1561918878415, price: 173585.00, is_buy: false }
Trade { volume: 0.00577, timestamp: 1561918867525, price: 173590.00, is_buy: false }
...

By default, all methods are asynchronous and return a Future wrapping Result<T, reqwest::Error>.

Dependencies

~10–14MB
~250K SLoC