longbridge-0.2.0 has been yanked.
Longbridge OpenAPI SDK for Rust
longbridge provides an easy-to-use interface for invokes Longbridge OpenAPI.
Quickstart
Add dependencies to Cargo.toml
[dependencies]
longbridge = "0.1.0"
Setting environment variables(MacOS/Linux)
export LONGBRIDGE_APP_KEY="App Key get from user center"
export LONGBRIDGE_APP_SECRET="App Secret get from user center"
export LONGBRIDGE_ACCESS_TOKEN="Access Token get from user center"
Setting environment variables(Windows)
setx LONGBRIDGE_APP_KEY "App Key get from user center"
setx LONGBRIDGE_APP_SECRET "App Secret get from user center"
setx LONGBRIDGE_ACCESS_TOKEN "Access Token get from user center"
use std::{error::Error, sync::Arc};
use longbridge::{
decimal,
trade::{OrderSide, OrderType, SubmitOrderOptions, TimeInForceType},
Config, QuoteContext, TradeContext,
};
#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
let config = Arc::new(Config::from_env()?);
let (quote_ctx, _) = QuoteContext::try_new(config.clone()).await?;
let (trade_ctx, _) = TradeContext::try_new(config).await?;
let resp = quote_ctx
.quote(vec!["700.HK", "AAPL.US", "TSLA.US", "NFLX.US"])
.await?;
println!("{:?}", resp);
let opts = SubmitOrderOptions::new(
"700.HK",
OrderType::Limit,
OrderSide::Buy,
decimal!(50i32),
TimeInForceType::Day,
)
.submitted_price(decimal!(50i32))
.remark("Hello from Python SDK".to_string());
let resp = trade_ctx.submit_order(opts).await?;
print!("order id: {}", resp.order_id);
Ok(())
}
Crate features
To avoid compiling unused dependencies, Poem gates certain features, all of which are disabled by default:
| Feature |
Description |
| blocking |
Provides the blocking client API. |