Skip to content

azurwastaken/paradex-rs

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Paradex

A simple, yet high performance client library for paradex

Both websocket and rest connectivity are supported. Currently a sub-set of the most important APIs are supported.

The benchmark uses mimalloc as I notice a 10-20% speedup using a mimalloc vs default allocator. Suggest benchmarking on your system / environment.

Examples

See here for full examples.

Simple example for receiving public market Data Over WebSocket

#[tokio::main] async fn main() { let symbol: String = "BTC-USD-PERP".into(); let manager = paradex::ws::WebsocketManager::new(paradex::url::URL::Testnet, None).await; let summary_id = manager .subscribe( paradex::ws::Channel::MarketSummary, Box::new(|message| info!("Received message {message:?}")), ) .await .unwrap(); let bbo_id = manager .subscribe( paradex::ws::Channel::BBO { market_symbol: symbol.clone(), }, Box::new(|message| info!("Received message {message:?}")), ) .await .unwrap(); let trades_id = manager .subscribe( paradex::ws::Channel::Trades { market_symbol: symbol.clone(), }, Box::new(|message| info!("Received message {message:?}")), ) .await .unwrap(); let orderbook_id = manager .subscribe( paradex::ws::Channel::OrderBook { market_symbol: symbol.clone(), refresh_rate: "50ms".into(), price_tick: None, }, Box::new(|message| info!("Received message {message:?}")), ) .await .unwrap(); let orderbook_deltas_id = manager .subscribe( paradex::ws::Channel::OrderBookDeltas { market_symbol: symbol.clone(), }, Box::new(|message| info!("Received message {message:?}")), ) .await .unwrap(); let funding_id = manager .subscribe( paradex::ws::Channel::FundingData { market_symbol: None, }, Box::new(|message| info!("Received message {message:?}")), ) .await .unwrap(); tokio::time::sleep(Duration::from_secs(120)).await; for id in [ summary_id, bbo_id, trades_id, orderbook_id, orderbook_deltas_id, funding_id, ] { manager.unsubscribe(id).await.unwrap(); } tokio::time::sleep(Duration::from_secs(5)).await; manager.stop().await.unwrap(); }

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Rust 100.0%