[][src]Crate itchy

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:

This example is not tested
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

Macros

d128

A macro to construct d128 literals.

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
RetailPriceImprovementIndicator
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
InterestFlag
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)