16 releases
0.2.5 | Feb 24, 2021 |
---|---|
0.2.4 | Feb 23, 2021 |
0.1.9 | Feb 21, 2021 |
#18 in #kraken
64 downloads per month
Used in 2 crates
(via squalo)
97KB
202 lines
🐙 Minimal, elegant, fast, async Kraken exchange REST API client | Written in Rust
Description
polipo
library aims to interface your software with the Kraken exchange REST API in no time.
Prerequisites
The Kraken exchange allows REST API
interaction with both public
and private
data.
Only for the private
one, you need to issue an API-Key
and an API-Secret
to the polipo
library, in order to generate authentication strings for signed requests.
If you are not familiar with, please have a look at API basics documentation for a general overview, or at Generate API keys document.
Implementation
Add this to your Cargo.toml
:
[dependencies]
polipo = {version = 0.2.5}
and then add this to your code
:
use polipo;
Methods
polipo::print_crate_info();
Description: prints crate
information (name, description, version, author and repository).
polipo::set_kraken_api_credentials(api_key: String, api_secret: String);
Description: sets Kraken API
credentials for private
data access.
Required:
- api_key:
String
- api_secret:
String
polipo::get_kraken_api_response(method: String, url_encoded_body: String).await;
Description: performs public
or private
requests, according to issued method
and url_encoded_body
data.
Required:
- method:
String
(eg: "public" or "private") - url_encoded_body:
String
(eg: "pair=ethusd&since=1574067140000000000")
Output: any response is in stringified JSON
format (parse accordingly with the outcome shape).
Example
The example below shows how easy is to implement polipo
from zero knowledge.
use polipo;
async fn query(method: &str, url_encoded_body: &str) -> String {
polipo::get_kraken_api_response(method.to_string(), url_encoded_body.to_string()).await
}
#[tokio::main]
async fn main() {
// printing crate information
polipo::print_crate_info();
// performing some queries on public data
println!("public/Assets: {}", query("Assets", "").await);
println!("public/Ticker: {}", query("Ticker", "pair=xdgeur").await);
// issuing credentials enables private data requests
polipo::set_kraken_api_credentials(
"YOUR_KRAKEN_API_KEY_HERE".to_string(),
"YOUR_KRAKEN_API_SECRET".to_string(),
);
// performing some queries on private data
println!("private/Balance: {}", query("Balance", "").await);
println!("private/TradeBalance: {}", query("TradeBalance","asset=ada").await);
println!("private/Trades: {}", query("Trades", "pair=ethusd&since=1574067140000000000").await);
}
Disclaimer
This software comes without any kind of warranties.
I will not be liable for any damages related to the use or the misuse of this software.
You are the sole responsible.
Dependencies
~7–19MB
~257K SLoC