Crate itchy [] [src]

itchy - a nom-based parser for the NASDAQ ITCH protocol 5.0

It aims to sensibly handle the whole protocol. It is zero-allocation and pretty fast. It will process several million messages per second on a decent CPU.

Typical usage:

extern crate itchy;

let stream = itchy::MessageStream::from_file("/path/to/file.itch").unwrap();
for msg in stream {
    println!("{:?}", msg.unwrap())
}

The protocol specification can be found on the NASDAQ website

Modules

errors

Structs

AddOrder
ArrayString

A string with a fixed capacity.

CrossTrade
ImbalanceIndicator
IpoQuotingPeriod
MarketParticipantPosition
Message

An ITCH protocol message. Refer to the protocol spec for interpretation.

MessageStream

Represents an iterable stream of ITCH protocol messages

NonCrossTrade
Price4

Opaque type representing a price to four decimal places

Price8

Opaque type representing a price to eight decimal places

ReplaceOrder
StockDirectory
d128

A 128-bit decimal floating point type.

Enums

Body

The message body. Refer to the protocol spec for interpretation.

CrossType
EventCode
FinancialStatus
ImbalanceDirection
IpoReleaseQualifier
IssueClassification
IssueSubType
LevelBreached
LuldRefPriceTier
MarketCategory
MarketMakerMode
MarketParticipantState
RegShoAction
Side
TradingState

Type Definitions

ArrayString4

Stack-allocated string of size 4 bytes (re-exported from arrayvec)

ArrayString8

Stack-allocated string of size 8 bytes (re-exported from arrayvec)