Skip to content

grexie/signals-client-rust

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Grexie Signals Rust Client

Typed Rust client for the Grexie Signals router websocket protocol.

[dependencies]
grexie-signals-client = "0.1.25"

SignalsManager

SignalsManager owns one router basket subscription. It sends your asset and venue-position snapshots to the server, then lets you receive server-created router events from the websocket. It does not calculate order management locally.

use grexie_signals_client::{
    AssetSnapshot, SignalsClient, SignalsManager, SignalsManagerConfig,
    SignalsManagerState, SignalsWebSocketToken,
};

let client = SignalsClient::new(SignalsWebSocketToken("ws_your_token".into()));
let mut manager = SignalsManager::new(
    client,
    SignalsManagerState {
        assets: vec![AssetSnapshot {
            venue: "okx".into(),
            currency: "USDT".into(),
            cash: 1000.0,
            available: 1000.0,
            equity: 1000.0,
            max_usage: 1.0,
            ..Default::default()
        }],
        positions: vec![],
    },
    SignalsManagerConfig {
        venue: "okx".into(),
        instruments: vec!["BTC-USDT-SWAP".into(), "ETH-USDT-SWAP".into()],
        ..Default::default()
    },
);
manager.connect().await?;
manager.subscribe().await?;

Client-to-server updates include update_asset, update_position, add_instrument, remove_instrument, update_config, and schedule_withdrawal. Server-created intents arrive as websocket SignalsEvent::CreateMarketOrder events.

Development

cargo test

About

Rust client crate for Grexie Signals websocket subscriptions and position management.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages