Skip to main content

Stream

Struct Stream 

Source
pub struct Stream {
    pub client: Client,
}
Expand description

Manages WebSocket streaming connections to the Limitless Exchange.

Connects to wss://ws.limitless.exchange/markets and provides methods for subscribing to public and private data streams.

Protocol note: The Limitless WS uses Socket.IO protocol over raw WebSocket. This implementation handles the raw WebSocket transport; callers should frame Socket.IO packets (namespace connect, event emit/receive) on top of this stream.

§Event Reference

Client → Server (emit)AuthDescription
subscribe_market_pricesNoAMM prices + CLOB orderbook
subscribe_positionsYesPortfolio position updates
subscribe_order_eventsYesOME + settlement lifecycle
subscribe_market_lifecycleNoMarket creation / resolution
Server → Client (on)AuthDescription
newPriceDataNoAMM price update
orderbookUpdateNoCLOB orderbook snapshot
positionsYesPosition balance change
orderEventYesOME state or settlement result
marketCreatedNoNew market funded and visible
marketResolvedNoMarket resolved with winning outcome
systemSystem notifications
authenticatedYesAuth confirmation
exceptionError notifications

Fields§

§client: Client

Implementations§

Source§

impl Stream

Source

pub async fn ws_ping(&self) -> Result<(), LimitlessError>

Tests connectivity by sending a WebSocket ping.

Source

pub async fn ws_subscribe<F>(&self, handler: F) -> Result<(), LimitlessError>
where F: FnMut(Value) -> Result<(), LimitlessError> + 'static + Send,

Subscribe to a public data stream with an event handler callback.

The handler receives raw JSON Value for each incoming message that is not a control frame (Ping/Pong/Close).

§Example
use limitless::prelude::*;

#[tokio::main]
async fn main() {
    let stream: Stream = Limitless::new(None, None);
    stream
        .ws_subscribe(|event| {
            println!("Received: {:?}", event);
            Ok(())
        })
        .await
        .unwrap();
}
Source

pub async fn ws_subscribe_with_commands<F>( &self, cmd_receiver: UnboundedReceiver<String>, handler: F, ) -> Result<(), LimitlessError>
where F: FnMut(Value) -> Result<(), LimitlessError> + 'static + Send,

Subscribe to a stream with dynamic command support.

Allows emitting subscription commands (subscribe/unsubscribe) after the connection is established. Send JSON command strings through the cmd_sender channel.

Trait Implementations§

Source§

impl Clone for Stream

Source§

fn clone(&self) -> Stream

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Limitless for Stream

Source§

fn new(api_key: Option<String>, secret: Option<String>) -> Self

Create a new manager instance with optional API key and secret. Read more
Source§

fn new_with_config( config: &Config, api_key: Option<String>, secret: Option<String>, ) -> Self

Create a new manager instance with a custom Config.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more