/orderbook-rs

OrderBook implementation in rust

Primary LanguageRustApache License 2.0Apache-2.0

Build Status Crates.io Docs.rs

orderbook-rs

I did this orderbook in addition to https://github.com/inv2004/coinbase-pro-rs

Its primitive orderbook with hardcoded minimal step to 1 cent.

For performance I put it in flat array, that is why it uses memory actively. For current coinbase BTC-USD pair it takes 188.1 Mb or RAM.

It has hardcoded limit for 20000(max price) * 100(cents) = 2*10^6 values it can store. Call the OB with values which are outside these boundaries will return None, but, I suppose, this return can be ignored in most cases.

It implements Display with the following output:

OB: sized of top 20 bids in 1-cent step | bid-price    ask-price | sizes of low 20 asks in 1-cent step
OB: 0,0,0,0,0,0,0,0.001,0,0,0,0,0,0,0,0,0,0,0,5.5,26.047638720000013 | 6494.98   6494.99 | 5.006541749999999,10.0838,0,0,0,0,0,0,0.00130864,0.0052,0,0,0,0,0,0,0,0,0,0,0

Examples